Функция получения не определена для yargs.getHelp()

#node.js #yargs

Вопрос:

Я хочу получить автоматически сгенерированную справку, полученную в результате yargs.getHelp (), и вместо этого я получаю сообщение об ошибке, что функция не определена. Вот пример кода:

 const yargs = require('yargs/yargs'); const { hideBin } = require('yargs/helpers'); const { parsed, boolean } = require("yargs");   async function parseArgs(){   let parsedArgs = yargs(hideBin(process.argv))  .option("trend-file", {  alias: "t",  description: "The full filename of the trendfile.",  type: "string",  })  .option("start-time", {  alias: "s",  description: "Start time for trend.",  type: "string",  })  .argv;   const test = await yargs.getHelp();  console.log(test); }  parseArgs() .catch((e)=gt;{console.log(e.message);});  

Примечание: Это всего лишь извлечение большей базы кода. Комментируя строку, которая вызывает yargs.getHelp (), работает нормально. Я чувствую, что просто делаю это неправильно. У кого-нибудь есть рабочий пример?

Я использую yargs v17.2.1

Обновить— Я смог получить помощь, передав все параметры yargs (), а затем вызвав getHelp() следующим образом:

 let test = await yargs()  .option("trend-file", {  alias: "t",  description: "The full filename of the trendfile.",  type: "string",  })  .option("start-time", {  alias: "s",  description: "Start time for trend.",  type: "string",  })  .getHelp();  

Есть ли лучший способ сделать это, не перечисляя все варианты дважды?

Комментарии:

1. Это была просто моя глупость, но я оставлю это здесь, на случай, если это поможет кому-то еще.

Ответ №1:

Я делал это неправильно. Все, что было необходимо, — это сначала вернуть объект yargs в переменную, а затем использовать его для раздельного получения списка аргументов с помощью argv и справки с помощью getHelp(). Окончательный код должен выглядеть следующим образом:

 const yargs = require('yargs/yargs'); const { hideBin } = require('yargs/helpers'); const { parsed, boolean } = require("yargs");   async function parseArgs(){   let parsedArgs = await yargs(hideBin(process.argv))  .option("trend-file", {  alias: "t",  description: "The full filename of the trendfile.",  type: "string",  })  .option("start-time", {  alias: "s",  description: "Start time for trend.",  type: "string",  });   let args = parsedArgs.argv;  const help = await parsedArgs.getHelp();  console.log(help); }  parseArgs() .catch((e)=gt;{console.log(e.message);});