commander.js: не удается использовать параметр с именем "options"

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

// two params, both are optional
program
  .option('--api <apiYaml>')
  .option('--options <optionsYaml>')
  .parse(process.argv);

if (program.options) {
  let optionsFile = path.resolve(program.options);
  ...

if (program.api) {
  let apiFile = path.resolve(program.api);
  ...

Этот код отлично работает для параметра --api, но умирает, когда я вызываю без параметра --options.

Добавляя некоторые отладки и глядя на объект program, я вижу, что проблема в том, что у program уже есть свойство options, а также свойства с именем args, commands и rawArgs. Означает ли это, что невозможно использовать какую-либо из этих строк в качестве параметров для моей программы, или есть обходной путь? Является ли это документированным где угодно?

+1
16 мая '18 в 16:46
источник поделиться

Посмотрите другие вопросы по меткам или Задайте вопрос