我正在使用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
的用法?