NodeJS, Commander - Как определить, прошел ли пользователь неподдерживаемый параметр - PullRequest
0 голосов
/ 08 марта 2020

Я просматривал все настройки, предоставляемые пакетом commander npm, его действительно приятно иметь, но я хотел бы знать, есть ли способ узнать, предоставил ли пользователь неподдерживаемую опцию.

Для неподдерживаемой команды мы можем написать: (но не уверены в неподдерживаемых параметрах)

const commander = require('commander');

this.applicationCommander = new commander.Command();

this.applicationCommander.command('*').action(this.applicationCommander.help);

1 Ответ

0 голосов
/ 09 марта 2020

Commander по умолчанию будет отображать ошибку для неизвестных опций в основной команде:

const program = require('commander');
program.parse(process.argv);
$ node index.js --silly
error: unknown option '--silly'

Соответствующая информация из README Commander v4, которая охватывает подкоманды:

Параметры команды в командной строке проверяются при использовании команды. Любые неизвестные опции будут сообщены как ошибка. Однако если команда на основе действия не определяет действие, то параметры не проверяются.

Если вы хотите выполнить дополнительную обработку самостоятельно, а не завершать работу при обнаружении неизвестной опции, выполните команду посмотрите на .exitOverride(). Например:

const commander = require('commander');
const program = new commander.Command();
program.exitOverride(); // throw instead of exit

try {
  program.parse(process.argv);
} catch (err) {
  if (err.code === 'commander.unknownOption') {
    console.log();
    program.outputHelp();
  }
}
$ node index.js --silly
error: unknown option '--silly'

Usage: index [options]

Options:
  -h, --help  output usage information
...