我想编写一个带有一个可选参数的CLI应用程序。
import { Command } from 'commander';
const program = new Command();
program.argument('[a]');
program.action((a) => console.log(`a = ${a}`));
program.parse();
console.log(program.args);
如果我用0或1个参数运行它,它会按预期工作。然而,我看不到一种干净的方法来检查整个命令行是否被参数占用。如果后面有任何命令行参数,我想出错。实现这一目标的最佳方式是什么?
$ node no-trailing-args.js
a = undefined
[]
$ node no-trailing-args.js 1
a = 1
[ '1' ]
$ node no-trailing-args.js 1 2
a = 1
[ '1', '2' ]
$
默认情况下,传递比声明的参数多的参数不是错误,但您可以使用.allowExcessArguments(false)
使其成为错误。
program.allowExcessArguments(false);