Терминал не показывает значение обработчика яргов - PullRequest
0 голосов
/ 27 марта 2019

Я изучаю node.js, и у меня возникла первая проблема. После того, как я установил yargs, и я пытаюсь создать команду yargs, но она не отображается в терминале. Когда я набираю node app.js mycommand в терминале, он возвращает мне только массив аргументов, а не мою команду, но если я набираю 'node app.js --help', он возвращает каждую команду. Я что-то не так делаю?

const yargs = require('yargs')

 yargs.command({
     command: 'mycommand',
     describe: 'mydesc',
     handler: () => { console.log('some text') } })

Я бы хотел, чтобы мой console.log отображал «некоторый текст» при наборе 'node app.js mycommand', но на самом деле у меня есть только массив аргументов:

{_: ['mycommand'], '$ 0': 'app.js'}

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Либо используйте yargs.argv;, либо .parse()

yargs.command({
  command: 'add',
  describe: 'This is add param',
  handler: function() {
    console.log("This is add notes command ");
  }
});
yargs.argv;

или

yargs.command({
  command: 'add',
  describe: 'This is add param',
  handler: function() {
    console.log("This is add notes command ");
  }
}).parse();

чтобы запустить его ...

узел app.js добавить

0 голосов
/ 15 июня 2019

Вы должны добавить .parse() в конец вашего кода. Это все.

const yargs = require('yargs')

 yargs.command({
     command: 'mycommand',
     describe: 'mydesc',
     handler: () => { console.log('some text') } }).parse()

Если у вас слишком много таких команд, вместо использования parse () для каждой команды, просто введите это под своим кодом:

yargs.parse()

Или введите это ниже вашего кода

console.log(yargs.argv)

Однако это также выведет "argv" (вектор аргументов).

...