如何为 Vorpal 应用程序的选项添加可变参数支持
How can I add variadic support to options of a Vorpal application
目前正在开发 vorpal application 并且正在尝试为我的一个命令添加可变参数支持。然而,将可变参数语法添加到命令的选项似乎没有按预期工作。
示例:
命令:language set-active -l en fr nl
输出:TypeError: Object en has no method 'join'
var vorpal = require('vorpal')();
// ... removed many commands for brevity of this example
vorpal
.command('language set-active')
.description('activate languages')
.option('-l, --languages [languages...]', 'Enter a list of language keys to activate')
.action(function(args, callback) {
console.log(args.options.languages.join(', '));
callback();
});
vorpal
.delimiter(vorpal.chalk.bold.yellow('blimp-cli~$'))
.show();
然而,当我改变可变参数从选项到命令参数时,效果很好:
命令:language set-active en fr nl
输出:output: en, fr, nl
// ...
vorpal
.command('language set-active [languages...]')
.description('activate languages')
.action(function(args, callback) {
console.log(args.options.languages.join(', '));
callback();
});
// ...
收到的 TypeError: Object en has no method 'join'
在我看来选项标志解析参数错误?
抱歉耽搁了。
在进一步研究时,Vorpal doesn't yet support 选项的可变参数,只有命令。
Vorpal bases 是主要从 minimist
模块中解析的选项,默认情况下不支持可变参数,并且由于其他细节,选项解析比命令解析有点棘手。
我会在以后的版本中考虑到这一点!
目前正在开发 vorpal application 并且正在尝试为我的一个命令添加可变参数支持。然而,将可变参数语法添加到命令的选项似乎没有按预期工作。
示例:
命令:language set-active -l en fr nl
输出:TypeError: Object en has no method 'join'
var vorpal = require('vorpal')();
// ... removed many commands for brevity of this example
vorpal
.command('language set-active')
.description('activate languages')
.option('-l, --languages [languages...]', 'Enter a list of language keys to activate')
.action(function(args, callback) {
console.log(args.options.languages.join(', '));
callback();
});
vorpal
.delimiter(vorpal.chalk.bold.yellow('blimp-cli~$'))
.show();
然而,当我改变可变参数从选项到命令参数时,效果很好:
命令:language set-active en fr nl
输出:output: en, fr, nl
// ...
vorpal
.command('language set-active [languages...]')
.description('activate languages')
.action(function(args, callback) {
console.log(args.options.languages.join(', '));
callback();
});
// ...
收到的 TypeError: Object en has no method 'join'
在我看来选项标志解析参数错误?
抱歉耽搁了。
在进一步研究时,Vorpal doesn't yet support 选项的可变参数,只有命令。
Vorpal bases 是主要从 minimist
模块中解析的选项,默认情况下不支持可变参数,并且由于其他细节,选项解析比命令解析有点棘手。
我会在以后的版本中考虑到这一点!