官方解释
- __dirname:当前模块的目录名。 相当于
__filename的path.dirname()。- __filename: 当前模块的文件名。
- process.cwd() :返回 Node.js 进程的当前工作目录。
换成易懂的:
__dirname得到的是被执行的文件所在目录的绝对路径——文件所在目录。
__filename得到是被执行文件的绝对路径——文件路径。
process.cwd()得到的是在哪个目录执行的文件——工作目录。
process.cwd()和__dirname可能相同
在文件所在目录运行test.js,结果如下图:

test.js运行结果
从图中可以看到
process.cwd()和__dirname的结果是一模一样的。那它俩到底有啥区别,我们换个目录来运行test.js,比如我们桌面来运行test.js;运行结果如下图:

在Desktop目录运行test.js的结果
此时可以看到
process.cwd()和__dirname打印的是有区别的