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] } } }