Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 指挥官可以';不能处理多个命令参数_Node.js - Fatal编程技术网

Node.js 指挥官可以';不能处理多个命令参数

Node.js 指挥官可以';不能处理多个命令参数,node.js,Node.js,我有以下带有多个参数的命令: var program = require('commander'); program .command('rename <id> [name]') .action(function() { console.log(arguments); }); program.parse(process.argv); 如您所见,操作接收第一个参数()和程序,但不接收第二个参数:[name] 我试过: 使[name]成为必需的参数 从命令行将

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

var program = require('commander');

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

program.parse(process.argv);
如您所见,操作接收第一个参数(
)和
程序
,但不接收第二个参数:
[name]

我试过:

  • 使
    [name]
    成为必需的参数
  • 从命令行将未加引号的名称传递给工具
  • 将我真正的应用程序简化为上面的可复制的小程序
  • name
    rename[name…]
    )使用可变参数,但这会导致
    1
    Hello
    被分配到与第一个动作参数相同的数组中,从而无法实现拥有
    id
    的目的

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

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

我遇到了同样的问题,决定改用

以下是他们的文档中的一个示例:

编写复杂程序时,您可能需要管理多个命令。使用
.command()
方法指定它们:

程序
//第一命令
.command(“我的命令”,“帮助中使用的可选命令说明”)
.参数(/*…*/)
.操作(/*…*/)
//第二个命令
.command(“sec command”、“…”)
.选项(/*…*/)
.操作(/*…*/)
$ 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] } } }