Я пишу утилиту CLI в NodeJS, используя yargs .
У Ярга есть функция .usage()
, которую я использую следующим образом:
yargs.usage("\nUsage: node $0 --input=path/to/input/file --output=path/to/output/file")
Когда я запускаю node cli.js --help
, он отображает следующее, как и ожидалось:
Usage: node cli.js --input=path/to/input/file --output=path/to/output/file
Очевидно, что yargs расширяет заполнитель $0
до cli.js
, и это здорово. Вот почему я вручную включил node
в вызов .usage()
.
Но, таким образом, когда я, наконец, опубликую свою утилиту как инструмент CLI, если кто-то установит ее с помощью npm install -g
, я боюсь, что показ использования будет
Usage: node my-utility --input=path/to/input/file --output=path/to/output/file
Хотя, очевидно, я бы хотел, чтобы это было
Usage: my-utility --input=path/to/input/file --output=path/to/output/file
Как я могу сделать эту условную проверку, чтобы печатать node
только в том случае, когда он действительно был назван таким образом (в отличие от прямого вызова)?