Javascript CommanderJS-验证参数

Javascript CommanderJS-验证参数,javascript,node.js,command-line-interface,Javascript,Node.js,Command Line Interface,给定以下cli配置,我们只需在操作处理程序中放置命令控件即可验证传递的参数 #/usr/bin/env节点 var程序=要求(“指挥官”); 程序 .command('问候') .action((person,cmd)=>{ log(`Hello${person}`); }) program.parse(process.argv) 但是,我想知道是否有实际的API可以这样做: program.command('greet <Giuseppe|Mick|Bob>'); progra

给定以下
cli
配置,我们只需在操作处理程序中放置命令控件即可验证传递的参数

#/usr/bin/env节点
var程序=要求(“指挥官”);
程序
.command('问候')
.action((person,cmd)=>{
log(`Hello${person}`);
})
program.parse(process.argv)
但是,我想知道是否有实际的API可以这样做:

program.command('greet <Giuseppe|Mick|Bob>');
program.command('greet');

因此,如果参数不正确,
commanderjs
将自动抛出。

command参数的原理是它们可以是任何东西,因此必须在
操作中处理

如果您想要一组有限的选项,可能需要使用

一般处理这种情况的解决方法是使用:

#/usr/bin/env节点
//这个程序的主要入口点,我们称之为mycmd
const program=需要(“指挥官”);
命令(“问候”、“问候某人”);
program.parse(process.argv);
然后使用
greet
命令文件:

#/usr/bin/env节点
//“greet”子命令的入口点,名为mycmd greet
const program=需要(“指挥官”);
//申报所有可用案例
//(显然,您还可以重用与操作回调相同的函数)
程序
.command('giuseppe')
.行动(()=>{
console.log(“Hi Giu!”);
});
程序
.command('mick'))
.行动(()=>{
console.log(“嘿,米奇!”);
});
程序
.command('bob')
.行动(()=>{
log(“那是我的鲍比!”);
});
//一次性处理“问候”失败
程序
.command(“*”)
.行动((x)=>{
log(`对不起,我不知道没有${x}`);
});
program.parse(process.argv);
希望这有帮助