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()
效果相同,是相对于启动脚本所在目录的路径。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构