如何检测脚本是直接调用还是通过yargs节点调用?

时间:2018-09-08 20:03:05

标签: javascript node.js yargs

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

0 个答案:

没有答案