2015-12-25 49 views
2

当前正在开发vorpal application并试图为我的一个命令添加可变参数支持。但是,将可变参数语法添加到命令的某个选项似乎并不像预期的那样工作。如何添加Variadic支持到Vorpal应用程序的选项

实施例:
命令: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(); 

但是当我改变一个可变PARAMS 从选项命令参数完美地工作:
命令: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'我看来,选项标记解析这些参数错了吗?

+0

该文档实际上并没有提到可变参数选项的任何内容,这可能根本无法实现(还)。 –

回答

1

对不起。

在进一步研究中,Vorpal doesn't yet support选项的可变参数,只有命令。

Vorpal基础选项很大程度上取决于minimist模块的解析,并且默认情况下不支持可变参数,而且由于其他细节,选项解析比命令解析更复杂一些。

我会在未来的版本中考虑到这一点!

+0

很高兴知道,我现在将它变成命令参数:) – Sander

相关问题