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

标签 yargs

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

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

getpostindex.js 之后是什么yargs考虑命令。

您可以在 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', {
      require: false,
      describe: 'port to bind on',
      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 main 对象传递给您,您可以使用所有常用的 yargs参数来描述每个命令的参数。

因此,在上面的示例中,yargs 的用法喜欢:

yargs.positional('port', {
      require: false,
      describe: 'port to bind on',
      default: 8080
    })

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

关于yargs - 我在哪里可以找到 yargs npm 中构建器的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63912968/

相关文章:

node.js - [yargs] 中的命令和选项有什么区别

javascript - 将参数传递给打包的 Electron 应用程序

javascript - SyntaxError :/Users/3x7r3m157/Development/Javascript/db. json:JSON 输入意外结束

node.js - 我得到 yargs.methodName is not a function with all yargs method using ES6 import in NodeJS without Babel

node.js - 使用 --experimental-specifier-resolution=node 时如何让 yargs 自动完成工作

node.js - yargs:需要至少一个没有相应标志的参数

javascript - 在 Gulp 中使用 Yargs

node.js - 亚格斯记录一面旗帜

node.js - 在*一个* gulp 任务中使用 yargs 将其应用于*所有*任务 : Why? 如何修复?

node.js - 如何在 typescript 中使用 yargs 解析命令行参数