process.cwd() & path.resolve('.')
一个有趣的问题
现在有如下脚本文件
// ...
console.log('path.resolve', path.resolve('.'));
console.log('process.cwd', process.cwd());
// ...
当我在其他位置如/desktop/other
下通过命令行去执行上面的js
脚本文件
node /desktop/node/test1.js
那么得到的结果将是
path.resolve /desktop/other
process.cwd /desktop/other
可我们又知道,process.cwd()
是用来获取当前脚本执行的路经的,也就是说它的结果是没有问题的;
而path.resolve('.')
它所应该返回的是.
,也就是当前文件目录,可为什么也跟着返回了脚本所执行的位置的路经呢?
呐,原因呢就是 path.resolve('.')
返回的是 Node.js 进程的当前工作目录,而不是正在执行的脚本的目录。当在命令行中执行 node
命令时,Node.js 进程的当前工作目录通常是命令行所在的目录。因此,path.resolve('.')
返回的是该目录。
最后更新于
这有帮助吗?