微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在哪里可以在yargs npm中找到有关构建器的文档?

如何解决在哪里可以在yargs npm中找到有关构建器的文档?

有人对npm yargs非常了解吗?我正在将此程序包用于命令行参数。但是找不到“ builder”的解释。我在哪里可以得到这个?

yargs.command({
    command: 'test',describe: 'testing a note',builder:{
        sample:{
            describe: 'Note content',demandOption: true,type: 'string'
        },},handler(argv){
        notes.addNote(argv.title,argv.content);
    }
})

解决方法

构建器模式可以帮助您提供有关使用多个可使用命令的文档帮助消息的更多上下文。

我们通常会使用lambda函数版本而不是对象版本。

例如,一个应用程序可以支持许多“命令”。这些命令将具有与同一应用程序关联的不同功能。

下面是一个简单的get / post用户可以执行的示例:

$ node src/index.js get
$ node src/index.js post "" 5001

get认为post之后的index.jsyargs

yargs中实现此目标的一种方法是:

require('yargs') // eslint-disable-line
  .command('post data [port]','post some data',yargs => {
    yargs.positional('data',{
      describe: 'post string',require: true
    })
    .positional('port',{
      require: false,describe: 'port to bind on',default: 8080
    })
  })
  .command('get [port]','get some data',yargs => {
    yargs.positional('port',default: 8080
    })
  })
  .option('verbose',{
    alias: 'v',type: 'boolean',description: 'Run with verbose logging'
  })
  .argv

因此,在请求帮助信息时,您可以执行以下操作:

$ node src/index.js --help
index.js [command]

Commands:
  index.js serve [port]      start the server
  index.js post data [port]  post some data

Options:
      --help     Show help                                             [boolean]
      --version  Show version number                                   [boolean]
  -v,--verbose  Run with verbose logging                              [boolean]

然后您可以进一步深入查看帮助信息:

$ node src/index.js post --help
index.js post data [port]

post some data

Positionals:
  data  post string                                                   [required]
  port  port to bind on                                          [default: 8080]

这显示了post命令的特定帮助。

因此,命令构建器模式使我们可以将任意数量的命令传递给应用程序并提供其参数文档。

当您必须支持许多需要各自参数的不同命令时,这非常有用。

要回答有关在哪里获得更多文档的问题,还有很长一段路要走:如果您使用lambda版本,则会将yargs主对象传递给您,并且您可以使用所有常用的{{1} }参数来描述每个命令的参数。

因此,在以上示例中,yargs的用法如下:

yargs

记录在: https://github.com/yargs/yargs/blob/master/docs/api.md

,

我发现上面的答案有点复杂,为了帮助将来可能登陆此页面的任何人,我建议阅读这篇 GeeksForGeeks 文章:

https://www.geeksforgeeks.org/node-js-yargs-module/

带有 .command(cmd,desc,[builder],[handler]) 的示例是这样的:

//Add note
yargs
  .command({
    command: "add",describe: "Add a note",builder: {
      title: {
        describe: "Title of the note",demandOption: true,type: "string",},handler: (argv) => {
      console.log("Added note with title:",argv.title);
    },})
  .parse();

在终端中,您必须输入:

node app.js add --title="The Complete Node.js Developer Course (3rd Edition)"  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。