我正在使用commander.js来解析命令行参数,我正在尝试收集一个可以出现多次的可选参数,它总是返回我设置的选项加上默认选项。
function collect (val, memo) {
memo.push(val);
return memo;
}
program
.command('run <param>')
.action(function run(param, options) {
console.log(param);
console.log(options.parent.config);
});
program
.option('-c, --config <path>', 'Config', collect, ["/path/to/default"])
.parse(process.argv);
当我这样调用脚本时:
index.js run some -c "/some/path" -c "/other/path"
它打印:
[ '/path/to/default', '/some/path', '/other/path' ]
但它应该只打印:
['/some/path', '/other/path' ]`
当我在没有-c
参数的情况下调用它时,它可以正常工作,使用默认值打印数组。我怎样才能解决这个问题?