【问题标题】:Yargs documenting a flag记录旗帜的 Yargs
【发布时间】:2015-03-25 01:43:14
【问题描述】:

我试图弄清楚如何用yargs 记录和别名一个不带值的参数

我想要做的是将-c 别名为--compile 并能够记录--compile。如果--compile

script sources -c

我期待它是这样的

  var argv = require('yargs')
    .usage('Usage: $0 <input> [options]')
    .example('$0 src/**.js -c', 'Generate a build')
    .demand(1)

    .boolean('compile')
    .alias('compile', ['c'])
    .nargs('c', 1)
    .describe('compile', 'Whether to compile the results')

    .version(function() {
      return require('../package').version;
    })
    .argv;

但是,调用script sources -c 会产生错误

TypeError: Cannot read property 'newAliases' of undefined
    at Object.self.help (/home/gyeates/code/lodash.modularize/node_modules/yargs/lib/usage.js:135:45)
    at Object.self.showHelp (/home/gyeates/code/lodash.modularize/node_modules/yargs/lib/usage.js:211:29)
    at Object.Argv.self.showHelp (/home/gyeates/code/lodash.modularize/node_modules/yargs/index.js:303:15)
    at Object.self.fail (/home/gyeates/code/lodash.modularize/node_modules/yargs/lib/usage.js:37:39)

【问题讨论】:

    标签: node.js command-line-interface yargs


    【解决方案1】:

    摆脱nargs('c', 1)。该方法指定在键之后应该使用的参数数量,在本例中为 1。我们不希望键采用任何值。

    var argv = require('yargs')
      .usage('Usage: $0 <input> [options]')
      .example('$0 src/**.js -c', 'Generate a build')
      .demand(1)
    
      .boolean('compile')
      .alias('compile', ['c'])
      .describe('compile', 'Whether to compile the results')
    
      .version(function() {
        return require('../package').version;
      })
      .argv;
    

    更多关于yargs方法的信息可以在here找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-06
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2012-05-09
      • 2011-05-20
      相关资源
      最近更新 更多