如何获取在NodeJS中执行的脚本的文件名?

时间:2012-12-11 21:47:02

标签: node.js

如何获取在NodeJS应用程序中执行的脚本文件名?

3 个答案:

答案 0 :(得分:47)

答案 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