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);
}
相关推荐
weixin_584121432 分钟前
vue内i18n国际化移动端引入及使用
前端·javascript·vue.js
Delroy12 分钟前
一个不懂MCP的开发使用vibe coding开发一个MCP
前端·后端·vibecoding
imkaifan15 分钟前
bind函数--修改this指向,返回一个函数
开发语言·前端·javascript·bind函数
xkxnq20 分钟前
第一阶段:Vue 基础入门(第 7 天)
前端·javascript·vue.js
光头闪亮亮20 分钟前
企业协同办公系统(OA)-【图标选择器】模块开发详解
前端·javascript·vue.js
pas13622 分钟前
22-mini-vue props
前端·javascript·vue.js
pas13623 分钟前
23-mini-vue 实现 emit 功能
前端·javascript·vue.js
百度地图汽车版26 分钟前
【智图译站】基于 LightGBM 与 GNSS 多特征驱动的 NLOS 误差可靠识别方法
前端
黛色正浓28 分钟前
leetCode-热题100-子串合集(JavaScript)
javascript·算法·leetcode
有意义32 分钟前
用心写好一个登录页:代码、体验与细节的平衡
前端·react.js·交互设计