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