#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);});