webpack源码分析——enhanced-resolve库之cdUp函数

一、 cdUp函数

函数功能

该函数寻找上层目录,每次调用函数时对输入的路径进行一次寻找上级目录。如果没有找到返回null

二、函数分析

  1. 传入的directory判读是否为'/'如果是直接返回null

    js 复制代码
    if (directory === "/") return null;
  2. 获取'/'和'\'在directory 中最后出现的位置,并赋值给i和j

    js 复制代码
    const i = directory.lastIndexOf("/"),
    		j = directory.lastIndexOf("\\");

    注:因为在不同平台上路径分隔符不一样

  3. 对i和j进行三元表达式判断

    js 复制代码
    const p = i < 0 
                ? j : j < 0 
                ? i : i < j 
                ? j : i;

是 不是 是 不是 是 不是 i是否小于0 返回j j是否小于0 返回i i是否小于j

  1. 根据p返回结果

    js 复制代码
    if (p < 0) return null;
    	return directory.slice(0, p || 1);

三、源码

js 复制代码
function cdUp(directory) {
	if (directory === "/") return null;
	const i = directory.lastIndexOf("/"),
		j = directory.lastIndexOf("\\");
	const p = i < 0 
                ? j : j < 0 
                ? i : i < j 
                ? j : i;
	if (p < 0) return null;
	return directory.slice(0, p || 1);
}
相关推荐
徐小夕2 小时前
我用 AI 撸了个开源"万能预览器":浏览器直接打开 Office、CAD 和 3D 模型
前端·vue.js·github
小码哥_常2 小时前
Flutter Android 延迟加载代码指南:提升应用性能的关键
前端
这是个栗子2 小时前
TypeScript(三)
前端·javascript·typescript·react
kvo7f2JTy2 小时前
基于机器学习算法的web入侵检测系统设计与实现
前端·算法·机器学习
北风toto2 小时前
前端CSS样式详细笔记
前端·css·笔记
nanfeiyan2 小时前
git commit
前端
前端精髓5 小时前
移除 Effect 依赖
前端·javascript·react.js
码云之上5 小时前
从一个截图函数到一个 npm 包——pdf-snapshot 的诞生记
前端·node.js·github
码事漫谈6 小时前
AI提效,到底能强到什么程度?
前端·后端
IT_陈寒6 小时前
React hooks依赖数组这个坑差点把我埋了
前端·人工智能·后端