0

我正在查看指挥官 npm 包提供的所有自定义,它真的很好,但我想知道是否有任何方法可以找到用户是否提供了不受支持的选项。

对于不受支持的命令,我们可以编写:(但不确定不受支持的选项)

const commander = require('commander');

this.applicationCommander = new commander.Command();

this.applicationCommander.command('*').action(this.applicationCommander.help);
4

1 回答 1

0

Commander 默认会在主命令上显示未知选项的错误:

const program = require('commander');
program.parse(process.argv);
$ node index.js --silly
error: unknown option '--silly'

涵盖子命令的 Commander v4 README 中的相关信息是:

使用命令时,会验证命令行上的命令选项。任何未知选项都将报告为错误。但是,如果基于操作的命令未定义操作,则不会验证选项。

如果您想自己做额外的处理而不是在遇到未知选项时退出,请查看.exitOverride(). 例如:

const commander = require('commander');
const program = new commander.Command();
program.exitOverride(); // throw instead of exit

try {
  program.parse(process.argv);
} catch (err) {
  if (err.code === 'commander.unknownOption') {
    console.log();
    program.outputHelp();
  }
}
$ node index.js --silly
error: unknown option '--silly'

Usage: index [options]

Options:
  -h, --help  output usage information
于 2020-03-09T08:42:34.920 回答