我正在使用yargs
开发cli工具。这是简单的yargs
代码,用于处理cli选项
let argv = require('yargs')
.usage('$0 <command> [option]')
.command(
'validate_zip',
'validate the directory structure for the zip to be uploaded',
{
'validate_zip': {
alias: 'vz'
}
}
)
.option('s', {
alias: 'stage',
describe: 'stage',
type: 'string',
choices: ['dev', 'qa', 'uat', 'prod'],
count: true
})
.demandCommand(1, 'You need at least one command before moving on!')
.help('h')
.alias('h', 'help')
.example('$0 validate_zip -s dev', 'testing yargs')
.showHelpOnFail(false, "Specify --help || -h for available options")
.argv;
这是cli命令
node testYargs.js vz -s dev
。我尝试通过"dev"
,但遇到相同的问题。
并显示以下消息
Invalid values:
Argument: s, Given: 1, Choices: "dev", "qa", "uat", "prod"
Specify --help || -h for available options
答案 0 :(得分:0)
count选项不应设置为true。 Count具有特殊含义,表示应该对标志的出现次数进行计数:
details about count.可在原始yargs
api文档中找到。
因此-v -v -v
将设置v = 3
,这将破坏选择逻辑。