yargs 警告:提供的参数太多。预期最多 1 个,但收到 2 个

yargs warning: Too many arguments provided. Expected max 1 but received 2

我的 yargs 配置有问题:

const argv = require('yargs')
    .boolean('reset', {
        alias: 'rs'
    })
    .boolean('refreshConfig', {
        alias: 'rc'
    })
    .option('harvest', {
        alias: 'h'
    })
    .option('lang', {
        alias: 'l',
        default: 'fr'
    })
    .help().argv;

我执行的脚本如下:

$ node ./srcjobs/cli.js --refreshConfig --harvest=facebook

我收到了这个错误:

Too many arguments provided. Expected max 1 but received 2.

你知道为什么吗? 谢谢你的帮助。

.boolean 只收到 1 个参数,来自源代码

boolean<K extends string>(key: K | ReadonlyArray<K>): Argv<T & { [key in K]: boolean | undefined }>;

正确的方法

const argv = require('yargs')
  .boolean('reset')
  .alias('rs', 'reset')
  .boolean('refreshConfig')
  .alias('rc', 'refreshConfig')
  .option('harvest', {
    alias: 'h'
  })
  .option('lang', {
    alias: 'l',
    default: 'fr'
  })
  .help().argv;