我正在使用yargs在 NodeJS 中编写 CLI 实用程序。
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
在真正以这种方式调用时(而不是直接调用)打印使用情况?