Библиотека Stdio
Самым простым способом анализа аргументов командной строки в NodeJS является использование модуля stdio . Вдохновленный утилитой UNIX getopt
, он так же тривиален:
var stdio = require('stdio');
var ops = stdio.getopt({
'check': {key: 'c', args: 2, description: 'What this option means'},
'map': {key: 'm', description: 'Another description'},
'kaka': {args: 1, mandatory: true},
'ooo': {key: 'o'}
});
Если вы запустили предыдущий код с этой командой:
node <your_script.js> -c 23 45 --map -k 23 file1 file2
Тогда ops
объект будет выглядеть следующим образом:
{ check: [ '23', '45' ],
args: [ 'file1', 'file2' ],
map: true,
kaka: '23' }
Так что вы можете использовать его как хотите. Например:
if (ops.kaka && ops.check) {
console.log(ops.kaka + ops.check[0]);
}
Сгруппированные параметры также поддерживаются, поэтому вы можете написать -om
вместо -o -m
.
Кроме того, stdio
может автоматически генерировать вывод справки / использования. Если вы позвоните ops.printHelp()
, вы получите следующее:
USAGE: node something.js [--check <ARG1> <ARG2>] [--kaka] [--ooo] [--map]
-c, --check <ARG1> <ARG2> What this option means (mandatory)
-k, --kaka (mandatory)
--map Another description
-o, --ooo
Предыдущее сообщение отображается также в том случае, если не указана обязательная опция (с предшествующим сообщением об ошибке) или если она указана неправильно (например, если для опции указана одна аргумент arg и для нее требуется 2).
Вы можете установить stdio , используя NPM :
npm install stdio