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);
}
相关推荐
William_Xu1 分钟前
var [a, b] = { a: 1, b: 2 } 解构赋值
前端
用户059540174462 分钟前
Playwright 网络拦截踩坑实录:我花了 3 小时才搞懂数据持久化验证的正确姿势
前端·css
weedsfly2 分钟前
React 开发中的闭包陷阱:四个真实场景,让你彻底理解闭包
前端·react.js
MariaH3 分钟前
Git Cherry Pick 常用操作
前端
初圣魔门首席弟子9 分钟前
AI Agent 核心原理:工具调用(Function Calling)完整工作流程详解
前端·数据库·人工智能
CodeSheep15 分钟前
又是梁文锋,有点猛啊。
前端·后端·程序员
qq_4221525719 分钟前
视频转 GIF 工具怎么选?2026 年动图制作方案与画质参数对比
javascript·vue.js·音视频
陈老老老板26 分钟前
如何用 Bright Data Web Scraper API + Coze 搭建 Reddit 行业情报聚合 Bot(2026 实战指南)
前端·人工智能
恋猫de小郭32 分钟前
由于 iOS 26 的键盘变化,Flutter 又要重构键盘区域逻辑
android·前端·flutter
怕浪猫38 分钟前
Electron 开发实战(十五):实战项目|从零搭建桌面即时通讯(IM)应用
前端·javascript·electron