É certo que o processamento anterior usou o processo interno.
1. Instalação
A cópia do código é a seguinte:
NPM Instale Commander
2. Análise de opções
As opções com comandante são definidas com o método .Option (), também servindo como documentação para as opções. O exemplo abaixo analisa args e opções do processo.argv, deixando o Args restante como a matriz do programa.args, que não foram consumidos por opções.
A cópia do código é a seguinte:
#!/usr/bin/Env nó
/**
* Dependências do módulo.
*/
Var Program = requer ('comandante');
Programa
.Version ('0.0.1')
.Option ('-P,--peppers', 'Adicionar pimenta')
.Option ('-P,--PINEAPPLE', 'Adicionar abacaxi')
.Option ('-B,--BBQ', 'Adicionar molho de churrasco')
.Option ('-C, --Cheese [tipo]', 'Adicione o tipo especificado de queijo [mármore]', 'mármore')
.parse (process.argv);
console.log ('Você pediu uma pizza com:');
if (program.peppers) console.log (' - pimenta');
if (program.pineapple) console.log (' - abacaxi');
if (program.bbq) console.log (' - churrasco');
console.log (' - %s queijo', program.cheese);
As bandeiras curtas podem ser passadas como um único ARG, por exemplo -ABC, é equivalente a -a -b -c. Opções de várias palavras, como "Modelo-Engine", são de camelo, tornando-se Program.TemplateEngine etc.
3. Gere automaticamente informações de ajuda
A cópia do código é a seguinte:
$. /examples/pizza --help
Uso: Pizza [Opções]
Opções:
-V, -Transmissão de saída O número da versão
-p, - -peppers adicionam pimentas
-P, - -pineapple Adicionar abacaxi
-B, -BBQ Adicionar molho de churrasco
-c, --cheese <type> Adicione o tipo especificado de queijo [mármore]
-h, -Informações de uso de saída de help
Claro que você também pode gerar manualmente:
A cópia do código é a seguinte:
#!/usr/bin/Env nó
/**
* Dependências do módulo.
*/
Var Program = requer ('../');
Lista de funções (val) {
retornar val.split (','). mapa (número);
}
Programa
.Version ('0.0.1')
.Option ('-f,--foo', 'Ativar um pouco')
.Option ('-B,--bar', 'Ativar algum bar')
.Option ('-B,--Baz', 'Ativar um pouco de Baz');
// deve ser antes .Parse () desde
// emit () é imediato
program.on ('-ajuda', function () {
console.log ('Exemplos:');
console.log ('');
console.log ('$ Custom-help--help');
console.log ('$ Custom -help -h');
console.log ('');
});
program.parse (process.argv);
console.log ('material');
4. Dê um exemplo completo
A cópia do código é a seguinte:
intervalo de funções (val) {
retornar val.split ('..'). mapa (número);
}
Lista de funções (val) {
retornar val.split (',');
}
função collect (val, memorando) {
Memo.push (Val);
retornar memorando;
}
Função aumente verbosidade (v, total) {
retorno total + 1;
}
Programa
.Version ('0.0.1')
.Usage ('[opções] <arquivo ...>')
.Option ('-i, --nteger <n>', 'um argumento inteiro', parseint)
.Option ('-f,--float <n>', 'um argumento flutuante', parsefloat)
.Option ('-r,-Range <a> .. <b>', 'um intervalo', alcance)
.Option ('-L,-List <Itens>', 'uma lista', lista)
.Option ('-o, --ptional [valor]', 'um valor opcional')
.Option ('-C,-Collect [Value]', 'um valor repetível', coletar, [])
.Option ('-v, --verbose', 'um valor que pode ser aumentado', aumento da verbosidade, 0)
.parse (process.argv);
console.log ('int: %j', program.integer);
console.log ('float: %j', program.float);
console.log ('Opcional: %j', program.optional);
programa.Range = Program.Range || [];
console.log ('range: %j .. %j', programa.Range [0], Program.Range [1]);
console.log ('lista: %j', programa.list);
console.log ('Collect: %j', program.collect);
console.log ('Verbosidade: %j', program.verbose);
console.log ('args: %j', program.args);