一、缘起:
在webpack打包的配置文件总是遇到‘__dirname’(例如下面这个),作为一个从事前端多年的‘老白’一直对它都是用不着,就不管的态度,但出来混总是要还的>_<...所以做了这个小总结
二、探究
路径分为:相对路径和绝对路径
1、相对路径有./
或者 ../两个(可通过
path.resolve('./')
来转换为绝对路径)
2、绝对路径有__dirname、
__filename、
process.cwd()三个
测试:新建简单文件path如下
三、从上面的打印信息可得出的总结:
(1)__dirname: 总是返回被执行的 js 所在文件夹的绝对路径
(2)__filename: 总是返回被执行的 js 的绝对路径
(3)process.cwd(): 总是返回运行 node 命令时所在的文件夹的路径
(4)./跟 process.cwd() 相同(这里必须要注意特殊情况require)
四、关于require()的路径特殊说明
(1)在require()中使用‘./’和‘../’,是跟使用 __dirname
的效果相同,不会因为启动脚本的目录不一样而改变;
(2)在其他情况下跟 process.cwd()
效果相同,是相对于启动脚本所在目录的路径。
结论:只有在 require()
时才使用相对路径(./, ../) 的写法,其他地方一律使用绝对路径。