Yargs 记录一个标志

Yargs documenting a flag

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

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

script sources -c

我期待它是这样的

  var argv = require('yargs')
    .usage('Usage: [=10=] <input> [options]')
    .example('[=10=] 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)

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

var argv = require('yargs')
  .usage('Usage: [=10=] <input> [options]')
  .example('[=10=] 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