webpack中常用的path到底是什么

146 阅读3分钟

背景

在webpack的配置文件中,”path“ 这一个词一般会大量出现,根据生产环境和开发环境,可能需要的不同的文件,就会导致需要使用不同的绝对路径。

那么path到底是什么?它的常用api怎么使用呢?

path

  • Path 是什么?

path是Node.js中的一个内置模块,用于处理文件路径的相关操作。它提供了一组方法,可以跨不同操作系统(如Windows、Linux等)正确地操作和处理文件路径。

const path = require("path");

path 是Node的内置模块,用于处理文件的路径。

通过require('path')可以引入path模块,并使用其中的方法来执行各种与路径相关的操作

  • 解析路径:path.resolve()方法将传入的路径参数解析为绝对路径。
  • 连接路径片段:path.join()方法将传入的路径片段连接在一起,并返回一个规范化的路径字符串。
  • 提取路径的各个部分:path.dirname()方法返回路径的目录部分,path.basename()方法返回路径的文件名部分,path.extname()方法返回路径的扩展名部分等。
  • 格式化路径:path.format()方法通过对象参数来生成路径字符串。
  • 规范化路径:path.normalize()方法将路径字符串规范化,解析其中的相对路径和符号链接。
  • 解析相对路径:path.relative()方法根据当前工作目录将一个路径解析为相对于另一个路径的相对路径。
  • 检查路径的存在性:path.exists()方法检查路径是否存在。

__dirname

__dirname 是一个在 Node.js 中的特殊变量,表示当前模块的目录路径。

返回值: 当前模块文件的绝对路径,包括文件名在内的完整路径

特性:

1:内置的全局变量,可以在任何模块中直接使用。

2:__dirname 是一个只读变量,不能对它进行重新赋值。它是在模块加载时由 Node.js 运行时自动设置的

应用场景:方便地获取当前模块所在的目录路径,无论当前模块是以什么方式被执行或引入的。

应用距离

当前的工作目录:

假设当前的工作目录为:urlC:\Users\ha\Desktop\react_cmsd_ui\react_cmsd_ui

当前的工作目录指的是,执行node脚本时所处的目录

如何查看当前的工作目录?

-e: 执行后面传递的参数

node -e "console.log(process.cwd())"

假设当前执行文件的目录为:fileUrlC:\Users\ha\Desktop\react_cmsd_ui\react_cmsd_ui\build

path.resolve()

=> 返回 url => 工作目录

path.resolve(__dirname)

=> 返回 fileUrl => 当前文件所在的目录

path.join()

=> 返回 “ . ” => 当前工作目录的相对路径(执行这段代码的时候就在当前工作目录下,所以是“ . ”)

path.join(__dirname)

=> 返回 fileUrl => 返回__dirname作为参数的路径字符串

path.join(__dirname, "..")

=> 返回url => 参数1:当前模块的路径为__dirname; 参数2: 如何拼接/处理第一个参数 => 假设这个url为rootPath

path.join(rootPath, "dist")

=> 返回url\dist => rootPath(url)路径下的dist文件的路径字符串

path.join(rootPath, "src")

=> 返回url\src => rootPath(url)路径下的src文件的路径字符串> 假设这个url为src

path.join(src, "index.html")

=> 返回src\index.html

总结

关于path的细节基本就这些了,本文仅作为工作记录