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

一、 cdUp函数

函数功能

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

二、函数分析

  1. 传入的directory判读是否为‘/’如果是直接返回null
    if (directory === "/") return null;
    
  2. 获取‘/’和‘\’在directory 中最后出现的位置,并赋值给i和j
    const i = directory.lastIndexOf("/"),
    		j = directory.lastIndexOf("\\");
    
    注:因为在不同平台上路径分隔符不一样
  3. 对i和j进行三元表达式判断
    const p = i < 0 
                ? j : j < 0 
                ? i : i < j 
                ? j : i;
    
不是
不是
不是
i是否小于0
返回j
j是否小于0
返回i
i是否小于j
  1. 根据p返回结果
    if (p < 0) return null;
    	return directory.slice(0, p || 1);
    

三、源码

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);
}

相关推荐

  1. webpack分析——enhanced-resolvecdUp函数

    2024-04-21 16:44:03       30 阅读
  2. webpack分析——loader-runnerrunLoaders函数

    2024-04-21 16:44:03       26 阅读
  3. 看图学 CopyOnWriteArraySet分析

    2024-04-21 16:44:03       47 阅读
  4. springAOP分析

    2024-04-21 16:44:03       58 阅读
  5. 并发编程ReentrantLock分析

    2024-04-21 16:44:03       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 16:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 16:44:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 16:44:03       82 阅读
  4. Python语言-面向对象

    2024-04-21 16:44:03       91 阅读

热门阅读

  1. CentOS的常用命令

    2024-04-21 16:44:03       38 阅读
  2. Oracle exceptions 表

    2024-04-21 16:44:03       39 阅读
  3. C语言—深度剖析数据在内存中的存储

    2024-04-21 16:44:03       35 阅读
  4. android学习笔记(四)

    2024-04-21 16:44:03       36 阅读
  5. c++学习笔记(11)

    2024-04-21 16:44:03       36 阅读
  6. Spark面试整理-Spark集成Kafka

    2024-04-21 16:44:03       30 阅读
  7. Redis如何查看KEY的数据类型

    2024-04-21 16:44:03       37 阅读
  8. C语言整型提升

    2024-04-21 16:44:03       35 阅读
  9. C++ 面向对象

    2024-04-21 16:44:03       35 阅读
  10. 信息收集分类

    2024-04-21 16:44:03       33 阅读
  11. 笔记:Python编程题 练习题

    2024-04-21 16:44:03       37 阅读
  12. Ansible 连接受控端sudo超时

    2024-04-21 16:44:03       30 阅读