0

我想编写一个带有一个可选参数的 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' ]
$
4

1 回答 1

1

默认情况下,传递比声明更多的参数不是错误,但您可以使用.allowExcessArguments(false).

program.allowExcessArguments(false);
于 2022-02-10T23:03:22.767 回答