5

我正在使用yargs为传递给脚本的参数添加命令行选项。当我发出帮助命令以及脚本名称时,它不会显示添加参数的帮助。

const yargs=require('yargs');
 const argv= yargs.command('add', 'ADD A NOTE TO A FILE', {
    title : {
        describe : 'title of the file',
        demand: 'true'
    }
})
.help()
.argv;




root# node mainFile_node.js --help
Options:
  --help     Show help                                                 [boolean]
  --version  Show version number

     node mainFile_node.js add
YARGS ARGV:-{ _: [ 'add' ], '$0': 'mainFile_node.js' }
4

6 回答 6

1

添加yargs.parse() ; 到文件末尾,让 yargs 使用其预定义的 args,例如 --help、--version。在此处输入图像描述

于 2020-07-31T06:18:22.903 回答
0
const yargs = require("yargs");

yargs.command({
  command: "add",
  describe: "Add new note",
  builder: {
    title: {
      // describe: 'note title',
      demandOption: true,
      type: "string"
    }
  },
  handler: function(argv) {
    console.log("My title: " + argv.title);
  }
});

yargs.parse();

然后在命令行中运行:

node filename.js add --title="title name"
于 2019-08-01T20:20:25.603 回答
0
const yargs=require('yargs');
const argv= yargs.command('add', 'ADD A NOTE TO A FILE', {
    title : {
        describe : 'title of the file',
        demand: 'true'
    }
}).parse()   

你必须在最后添加 parse() 方法。如果您将来碰巧使用 parse() 也将执行处理函数。

或在代码下

console.log(yargs.argv) 

如果您没有在文件上编写任何代码但您正在使用命令行,则此方法很有用。比方说

节点 app.js 添加 --title="somthing" --help

为了查看帮助菜单,您必须console.log(yargs.argv) 在文件上键入。

于 2019-07-22T16:15:57.333 回答
0

试试下面的代码

const yargs = require("yargs")
yargs.command({
  command: 'add',
  describe: 'ADD A NOTE TO A FILE',
  handler: function(){
    console.log('Adding to a file')
  }
})

然后用下面的命令执行

root# node mainFile_node.js --help
于 2019-04-05T11:04:24.837 回答
0
yargs.command({
command: 'add',

showInHelp: true, //add this line here!!!

describe: 'add a note',
builder: {
    title: {
        describe: 'title of my note',
        demandOption: true,
        type: 'string',
        
        
    },
    body: {
        describe: 'body note',
        demandOption: true,
        type: 'string',
        

        
    }
},

handler: function (argv) {
    console.log(argv.title,'\n', argv.body, '\n creating the note', argv)
}
})
于 2021-11-14T17:51:20.140 回答
0

首先检查 node ./main.js --h 是否正常工作?

然后,只需在单独的 js 文件上运行 node ./app.js --help ,然后它将开始处理前一个文件。

const chalk = require('chalk');
const yargs = require('yargs');

//Create add command
yargs.command({
    command:'add',
    describe:'Add a new note',
    handler:function(){
        console.log("add a new note");
    }
})

//Create remove command
yargs.command({
    command:'remove',
    describe:'Remove the note',
    handler:function(){
        console.log("Removing a note");
    }
})

//Create list command
yargs.command({
    command:'list',
    describe:'List all the notes',
    handler:function(){
        console.log("List notes");
    }
})

//Create read command
yargs.command({
    command:'read',
    describe:'read note',
    handler:function(){
        console.log("read a note");
    }
})


console.log(yargs.argv)
于 2020-02-01T13:21:03.363 回答