Как получить имя файла script, выполняемое в приложении NodeJS?
Как получить имя файла script, выполняемое в NodeJS?
Ответ 1
Вы можете использовать переменную __filename
http://nodejs.org/docs/latest/api/globals.html#globals_filename
Ответ 2
Используйте метод basename
модуля path
:
var path = require('path');
var filename = path.basename(__filename);
console.log(filename);
Вот документация, из которой взят пример выше.
Как отметил Дэн, Node работает над модулями ECMAScript с флагом --experimental-modules. Узел 12 все еще поддерживает __dirname
и __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);
Ответ 3
Вам нужно использовать process.argv
. Там будет имя скрипта, который был выполнен из командной строки, который может отличаться от того, что вы найдете в __filename
. Что подходит, зависит от ваших потребностей.
http://nodejs.org/docs/latest/api/process.html#process_process_argv