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

我如何获得Node.js中脚本的路径?

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

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

如果我打电话process.cwd(),我/home/kyle/不会/home/kyle/some/dir/有没有办法获取该目录?

Near西门2020/03/13 18:02:10

You can use process.env.PWD to get the current app folder path.

米亚西里2020/03/13 18:02:10

Every Node.js program has some global variables in its environment, which represents some information about your process and one of it is __dirname.

神奇A梅2020/03/13 18:02:10

使用__dirname!

__dirname

当前模块的目录名称。这与的path.dirname()相同__filename

示例:从/ Users / mjr运行节点example.js

console.log(__dirname);
// Prints: /Users/mjr
console.log(path.dirname(__filename));
// Prints: /Users/mjr

https://nodejs.org/api/modules.html#modules_dirname

对于ESModule,您将要使用: import.meta.url

小胖Pro2020/03/13 18:02:10

我在再次浏览文档后才找到它。我要寻找的是__filename__dirname模块级别的变量。

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