現在、vorpal アプリケーションを開発しており、コマンドの 1 つに可変長サポートを追加しようとしています。ただし、可変長構文をコマンドのオプションに追加すると、期待どおりに機能しないようです。
例:
コマンド: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'
フラグが引数を間違って解析しているように見えますか?