我如何获得Node.js中脚本的路径?
我知道有process.cwd
,但这仅是指脚本被调用的目录,而不是脚本本身的目录。例如,假设我进入/home/kyle/
并运行以下命令:
node /home/kyle/some/dir/file.js
如果我打电话process.cwd()
,我/home/kyle/
不会/home/kyle/some/dir/
。有没有办法获取该目录?
我如何获得Node.js中脚本的路径?
我知道有process.cwd
,但这仅是指脚本被调用的目录,而不是脚本本身的目录。例如,假设我进入/home/kyle/
并运行以下命令:
node /home/kyle/some/dir/file.js
如果我打电话process.cwd()
,我/home/kyle/
不会/home/kyle/some/dir/
。有没有办法获取该目录?
Every Node.js program has some global variables in its environment, which represents some information about your process and one of it is __dirname
.
使用__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
我在再次浏览文档后才找到它。我要寻找的是__filename
和__dirname
模块级别的变量。
__filename
是当前模块的文件名。这是当前模块文件的解析绝对路径。(例如:/home/kyle/some/dir/file.js
)__dirname
是当前模块的目录名称。(例如:/home/kyle/some/dir
)
You can use process.env.PWD to get the current app folder path.