NodeJS 中 __dirname
、__filename
等用来表示路径的方法或属性的区别
__dirname
当前文件的绝对路径,不会随执行命令的目录改变而改变__filename
当前文件的绝对路径,不会随执行命令的目录改变而改变module.filename
当前文件的绝对路径,不会随执行命令的目录改变而改变process.cwd()
运行当前脚本的工作目录路径,会随着执行脚本时的目录而改变process.chdir()
更改工作目录
比方在 /home/wsl
下有个名为 test 的项目:
test
└── parent
└── child
└── app.js
其中 app.js
文件的内容如下:
console.log(__dirname)
console.log(__filename)
console.log(module.filename)
console.log(module.filename === __filename)
console.log(process.cwd())
process.chdir('/home/wsl')
console.log(process.cwd())
然后在 test 目录下执行 node parent/child/app.js
,输出的结果如下:
/home/wsl/test/parent/child
/home/wsl/test/parent/child/app.js
/home/wsl/test/parent/child/app.js
true
/home/wsl/test
/home/wsl