我正在从更旧版本的指挥官 (v2.20.3) 迁移一个包
program.command(`install [pkg]`)
.alias(`i`)
.action(installPackageOrLocal)
.option(`-S, --save`, `Save to dependencies`)
.option(`-D, --save-dev`, `Save to devDependencies`)
.option(`--production`, `Will not install modules listed in devDependencies`)
.option(`--test`, `Exit with code 1 if package limits like maxPackagesNumber or maxSizeBites exceeded`);
我希望默认值(在完全没有参数的情况下调用 CLI 时)继续显示帮助并且不会出错,但目前它会出错:
.../npm-reflect/node_modules/.pnpm/commander@8.3.0/node_modules/commander/lib/command.js:142 const [, name, args] = nameAndArgs.match(/([^ ]+) ( . )/);
通过添加以下内容,我能够获得最想要的行为:
program.command('help', {isDefault: true})
.action(() => {
program.help();
})
.command(`install [pkg]`)
// ...
...但这似乎通过列出一个新的“帮助”命令来污染帮助中的内容。在不添加新命令的情况下,如何避免解析器在没有参数的情况下抱怨?