确保Commander.js中没有尾随参数



我想编写一个带有一个可选参数的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);

相关内容

  • 没有找到相关文章

最新更新