По общему признанию, в предыдущей обработке использовался встроенный процесс. Agrv, который может работать, но ее нелегко работать, поэтому мастер TJ написал «мой бог», который совершенно высокий: END:
1. Установка
Кода -копия выглядит следующим образом:
NPM установить командир
2. Анализ опционов
Варианты с Commander определены с помощью метода .option (), также служащим в качестве документации для вариантов. Приведенный ниже пример анализации Args и Options от Process.Argv, оставляя оставшиеся ARGS в качестве программы.
Кода -копия выглядит следующим образом:
#!/usr/bin/env node
/**
* Зависимости модуля.
*/
var Program = require ('Commander');
Программа
.version ('0,0,1')
.Option ('-p,-peppers', 'добавить перцы')
.Option ('-p,-pineapple', 'добавить ананас')
.Option ('-b,--bbq', 'добавить соус барбекю')
.option ('-c,-cheese [type]', 'добавить указанный тип сыра [мрамор]', 'мрамор')
.parse (process.argv);
console.log («Вы заказали пиццу с: ');
if (program.peppers) console.log (' - peppers');
if (program.pinepple) console.log (' - pineapple');
if (program.bbq) console.log (' - bbq');
console.log (' - %s Cheese', Program.cheese);
Короткие флаги могут быть переданы в виде единого ARG, например, -ABC эквивалентен -A -B -C. Варианты с несколькими словами, такие как «шаблон-двигатель», представляются верблюжьим, становясь программой.
3. автоматически генерировать информацию о справке
Кода -копия выглядит следующим образом:
$ ./examples/pizza -help
Использование: пицца [варианты]
Параметры:
-V, -Вывод номера версии
-p, -первые добавляют перцы
-P, -Pineapple Добавить ананас
-b, -Bbbq добавить соус барбекю
-c, -cheese <type> Добавить указанный тип сыра [мрамор]
-H, -HELP
Конечно, вы также можете генерировать вручную:
Кода -копия выглядит следующим образом:
#!/usr/bin/env node
/**
* Зависимости модуля.
*/
var Program = require ('../');
Список функций (val) {
вернуть val.split (','). map (number);
}
Программа
.version ('0,0,1')
.Option ('-f,--foo', 'включить немного foo')
.Option ('-b,--bar', 'включить какую-то бар')
.Option ('-b,--baz', 'включить немного баз');
// должен быть до .parse (), поскольку
// emit () Node () является непосредственным
Program.on ('-help', function () {
console.log ('примеры:');
console.log ('');
console.log ('$ custom-help-help');
console.log ('$ custom -help -h');
console.log ('');
});
Program.parse (Process.argv);
console.log ('вещи');
4. Приведите полный пример
Кода -копия выглядит следующим образом:
Диапазон функций (val) {
вернуть val.split ('..'). Map (number);
}
Список функций (val) {
вернуть val.split (',');
}
Функция collect (val, memo) {
Memo.push (val);
вернуть память;
}
Функция увеличения
вернуть общее количество + 1;
}
Программа
.version ('0,0,1')
.USAGE ('[options] <file ...>')
.option ('-i,--integer <n>', «целочисленный аргумент», Parseint)
.Option ('-f,--float <n>', 'аргумент с плавающей запятой, Parsefloat)
.option ('-r, --range <a> .. <b>', 'a jange', range)
.Option ('-l,--list <epits>', 'A List', List)
.Option ('-o,-optional [value]', «Необязательное значение»)
.Option ('-c,-Комкулировать [значение]', «Повторяемое значение», Collect, [])
.Option ('-v,-verbose', «значение, которое может быть увеличено», увеличение косточки, 0)
.parse (process.argv);
console.log ('int: %j', program.integer);
console.log ('float: %j', program.float);
console.log ('Необязательно: %J', Program.Optional);
Program.Range = Program.Range || [];
console.log ('range: %j .. %j', program.range [0], program.range [1]);
console.log ('список: %j', program.list);
console.log ('collect: %j', program.collect);
console.log ('verbity: %j', program.verbose);
console.log ('args: %j', program.args);