ho il commander seguente comando con più argomenti:comandante non è in grado di gestire più argomenti del comando
var program = require('commander');
program
.command('rename <id> [name]')
.action(function() {
console.log(arguments);
});
program.parse(process.argv);
Utilizzando l'applicazione produce il seguente risultato:
$ 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] } } }
Come si può vedere, l'azione riceve il primo argomento (<id>
) e program
, ma non riceve il secondo argomento: [name]
.
ho provato:
- Fare
[name]
un argomento richiesto. - Passare il nome non quotato allo strumento dalla riga di comando.
- Semplifica la mia vera app nel minuscolo programma riproducibile sopra.
- Utilizzando un argomento variadic per
name
(rename <id> [name...]
), ma ciò comporta sia1
eHello
di essere designato nello stesso array come primo parametro all'azione, sconfiggere lo scopo di avereid
.
Cosa mi manca? Il comandante accetta solo un argomento per comando (non appare così nella documentazione)?