gpt4 book ai didi

node.js - Commander 无法处理多个命令参数

转载 作者:搜寻专家 更新时间:2023-10-31 22:34:31 24 4
gpt4 key购买 nike

我有以下 commander带多个参数的命令:

var program = require('commander');

program
.command('rename <id> [name]')
.action(function() {
console.log(arguments);
});

program.parse(process.argv);

使用该应用会产生以下结果:

$ node app.js 1 "Hello"
{ '0': '1',
'1':
{ commands: [],
options: [],
_execs: [],
_args: [ [Object] ],
_name: 'rename',
parent:
{ commands: [Object],
options: [],
_execs: [],
_args: [],
_name: 'app',
Command: [Function: Command],
Option: [Function: Option],
_events: [Object],
rawArgs: [Object],
args: [Object] } } }

如您所见,该操作接收第一个参数 ( <id> ) 和 program ,但没有收到第二个参数:[name] .

我试过:

  • 制作[name]一个必需的参数。
  • 从命令行将不带引号的名称传递给工具。
  • 将我的真实应用程序简化为上面的微型可重现程序。
  • name 使用可变参数( rename <id> [name...] ),但这会同时影响 1Hello被分配到与 action 的第一个参数相同的数组中,破坏了具有 id 的目的.

我错过了什么?指挥官每个命令只接受一个参数吗(在文档中看起来不是这样)?

最佳答案

我认为这是旧版本 commander 中的错误。这现在适用于 commander@2.9.0

关于node.js - Commander 无法处理多个命令参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27066200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com