如何使用 Node.js 获取当前脚本的路径?

新手上路,请多包涵

如何在 Node.js 中获取脚本的路径?

我知道有 process.cwd ,但这仅指调用脚本的目录,而不是脚本本身。例如,假设我在 /home/kyle/ 并运行以下命令:

 node /home/kyle/some/dir/file.js

如果我打电话 process.cwd() ,我得到 /home/kyle/ ,而不是 /home/kyle/some/dir/ 。有没有办法得到那个目录?

原文由 Kyle Slattery 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 947
2 个回答

再次查看文档后,我找到了它。我正在寻找的是 __filename__dirname 模块级变量。

  • __filename 是当前模块的文件名。这是当前模块文件的解析绝对路径。 (例如: /home/kyle/some/dir/file.js
  • __dirname 是当前模块的目录名。 (例如: /home/kyle/some/dir

原文由 Kyle Slattery 发布,翻译遵循 CC BY-SA 4.0 许可协议

NodeJS 公开了一个名为 __dirname 的全局变量。

__dirname 返回 JavaScript 文件所在文件夹的完整路径。

因此,例如,对于 Windows,如果我们使用以下行创建一个脚本文件:

 console.log(__dirname);

并使用以下命令运行该脚本:

 node ./innerFolder1/innerFolder2/innerFolder3/index.js

输出将是: C:\Users…\innerFolder1\innerFolder2\innerFolder3

原文由 Idan_Krupnik 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题