nodejs 路径问题 相对路径 绝对路径

Node.js 中 __dirname 和 ./ 的区别

https://blog.csdn.net/zsensei/article/details/79094714

 

What is the difference between __dirname and ./ in node.js?

https://stackoverflow.com/questions/8131344/what-is-the-difference-between-dirname-and-in-node-js

 

浅析 NodeJs 的几种文件路径

https://github.com/imsobear/blog/issues/48

 

-------------------------------------------------------------------------------------------------------

说法一、

__dirname 总是指向被执行 js 文件的绝对路径,所以当你在 /d1/d2/myscript.js 文件中写了 __dirname, 它的值就是 /d1/d2 。

相反,./ 会返回你执行 node 命令的路径,例如你的工作路径。

有一个特殊情况是在 require() 中使用 ./ 时,这时的路径就会是含有 require() 的脚本文件的相对路径。

 

说法二、

那么,不好意思不是问题来了~T_T,我们可以得出一些肤浅的结论了:

  • __dirname: 总是返回被执行的 js 所在文件夹的绝对路径
  • __filename: 总是返回被执行的 js 的绝对路径
  • process.cwd(): 总是返回运行 node 命令时所在的文件夹的绝对路径
  • ./: 跟 process.cwd() 一样、一样、一样的吗?

 

关于 ./ 正确的结论是:

在 require() 中使用是跟 __dirname 的效果相同,不会因为启动脚本的目录不一样而改变,

在其他情况下跟 process.cwd() 效果相同,是相对于启动脚本所在目录的路径。

 

posted @ 2022-03-14 18:20  hjswlqd  阅读(572)  评论(0编辑  收藏  举报