Почему терминал не показывает другую команду yargs? - PullRequest
0 голосов
/ 18 апреля 2020

Когда я запускаю команду node app.js --help, терминал показывает только команду добавления, в то время как я определил три команды, и все они работают. И когда я использую parse() метод вместо argv, почему я получаю «Удаление заметки» напечатано 2 раза?

const yargs = require('yargs');


yargs.command({
    command:'add',
    describe:'Adds new note',
    handler:function(){
    console.log('Adding a note')
    }
}).argv;

yargs.command({
    command:'remove',
    describe:'Removes a note',
    handler:function(){
    console.log('Removing a note')
    }
 }).argv;

yargs.command({
    command:'list',
    describe:'Fetches a list of notes',
    handler:function(){
    console.log('Fetching a list')
    }
 }).argv;

Commands:
  app.js add  Adds new note

Options:
  --help     Show help                                                 [boolean]
  --version  Show version number                                       [boolean]
 PS C:\Users\Sanket\Documents\node js\notes-app> 

PS C:\Users\Sanket\Documents\node js\notes-app> node app.js add   

Adding a note
PS C:\Users\Sanket\Documents\node js\notes-app> node app.js remove
Removing a note
Removing a note
PS C:\Users\Sanket\Documents\node js\notes-app> node app.js list  
Fetching a list
PS C:\Users\Sanket\Documents\node js\notes-app> 

1 Ответ

0 голосов
/ 19 апреля 2020

Вы вызываете .argv, который останавливает процесс до того, как другие могут быть определены до вызова help.

Удалите .argv из всех, кроме последнего созданного вами определения команды, это самое простое исправление для этого.

const yargs = require('yargs');


yargs.command({
    command:'add',
    describe:'Adds new note',
    handler:function(){
    console.log('Adding a note')
    }
});

yargs.command({
    command:'remove',
    describe:'Removes a note',
    handler:function(){
    console.log('Removing a note')
    }
 });

yargs.command({
    command:'list',
    describe:'Fetches a list of notes',
    handler:function(){
    console.log('Fetching a list')
    }
 }).argv;
...