ich habe folgende commander Befehl mit mehreren Argumenten:Commander können nicht mehrere Befehlsargumente behandeln
var program = require('commander');
program
.command('rename <id> [name]')
.action(function() {
console.log(arguments);
});
program.parse(process.argv);
den App liefert das folgende Ergebnis:
$ 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] } } }
Wie Sie sehen können, wird die Aktion empfängt das erste Argument (<id>
) und program
, erhält aber nicht das zweite Argument: [name]
.
Ich habe versucht:
[name]
ein erforderliches Argument zu machen.- Übergeben Sie den Namen, der nicht in das Werkzeug eingegeben wurde, über die Befehlszeile.
- Vereinfachen Sie meine reale Anwendung in das kleine reproduzierbare Programm oben.
- ein Argument variadische Verwendung für
name
(rename <id> [name...]
), aber dies führt sowohl1
undHello
als erster Parameter zur Aktion in der gleichen Anordnung zugeordnet ist, um den Zweck zu besiegenid
zu haben.
Was fehlt mir? Akzeptiert der Kommandant nur ein Argument pro Befehl (sieht in der Dokumentation nicht so aus)?