如何获取在NodeJS应用程序中执行的脚本文件名?
答案 0 :(得分:47)
您可以使用变量__filename
http://nodejs.org/docs/latest/api/globals.html#globals_filename
答案 1 :(得分:23)
使用basename
模块的path
方法:
var path = require('path');
var filename = path.basename(__filename);
console.log(filename);
Here是以上示例的文档。
正如Dan指出的那样,Node正在使用" - 实验模块"来处理ECMAScript modules。旗。节点12仍为supports __dirname
and __filename
,如上所述。
如果您使用的是--experimental-modules
标记,则会有alternative approach。
另一种方法是获取path to the current ES module:
const __filename = new URL(import.meta.url).pathname;
对于包含当前模块的目录:
import path from 'path';
const __dirname = path.dirname(new URL(import.meta.url).pathname);
答案 2 :(得分:19)
您需要使用process.argv
。将存在从命令行执行的脚本的名称,该名称可能与您在__filename
中找到的名称不同。哪个合适取决于您的需求。
http://nodejs.org/docs/latest/api/process.html#process_process_argv