小编bor*_*res的帖子

Commander.js 收集多个选项总是包含默认值

我正在使用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);
Run Code Online (Sandbox Code Playgroud)

当我这样调用脚本时:

index.js run some -c "/some/path" -c "/other/path"
Run Code Online (Sandbox Code Playgroud)

它打印:

[ '/path/to/default', '/some/path', '/other/path' ]
Run Code Online (Sandbox Code Playgroud)

但它应该只打印:

['/some/path', '/other/path' ]`
Run Code Online (Sandbox Code Playgroud)

当我在没有-c参数的情况下调用它时,它可以正常工作,使用默认值打印数组。我怎样才能解决这个问题?

javascript node.js node-commander

2
推荐指数
1
解决办法
5332
查看次数

标签 统计

javascript ×1

node-commander ×1

node.js ×1