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);
}
相关推荐
jump680几秒前
为什么typeof null = 'object'
前端
__不想说话__1 分钟前
给网站做“体检”:Lighthouse如何平息产品经理的怒火
前端·google·架构
玉宇夕落3 分钟前
🚀 从 HTML 到像素:浏览器渲染全流程揭秘(附性能优化实战)
前端·dom
西甲甲5 分钟前
chromium UI 简要解析
前端
inx1776 分钟前
微信小程序开发实战:从结构到数据绑定的完整实现
javascript·微信小程序
Holin_浩霖11 分钟前
函数式编程实现简单的 Fiber 架构
前端
一枚前端小能手16 分钟前
📚 JavaScript 数据类型与数据结构全攻略 - 原始值、对象、Map/Set与弱引用实战
前端·javascript
JarvanMo38 分钟前
我的app被工信部下架了,现在想重新上架
前端
景早38 分钟前
小黑记账清单案例(axios,echarts,vue)
前端·vue.js·echarts
Mintopia38 分钟前
🌐 《GraphQL in Next.js 初体验》中文笔记
前端·后端·全栈