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

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

theZiki asked 2020-06-27T04:11:54Z
3个解决方案
48 votes

您可以使用变量__filename

[HTTP://node将是.org/docs/latest/API/globals.HTML#globals_filename]

Hector Correa answered 2020-06-27T04:12:13Z
23 votes

使用__filename模块的--experimental-modules方法:

var path = require('path');
var filename = path.basename(__filename);
console.log(filename);

这是上面示例的文档。

正如Dan所指出的那样,Node正在使用“ --experimental-modules”标志来处理ECMAScript模块。 节点12仍如上所述支持--experimental-modules__filename


如果您使用--experimental-modules标志,则有另一种方法。

替代方法是获取当前ES模块的路径:

const __filename = new URL(import.meta.url).pathname;

对于包含当前模块的目录:

import path from 'path';

const __dirname = path.dirname(new URL(import.meta.url).pathname);
Michael Cole answered 2020-06-27T04:12:55Z
20 votes

您需要使用process.argv。其中将包含从命令行执行的脚本的名称,该名称可能与__filename中的名称不同。根据您的需要,此名称是否合适。

[HTTP://node将是.org/docs/latest/API/process.HTML#process_process_arg V]

Brad answered 2020-06-27T04:13:19Z
translate from https://stackoverflow.com:/questions/13829037/how-to-get-filename-of-script-being-executed-in-nodejs