我正在从一个更旧版本的commander(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反射/nod_module/.pnpm/commander@8.3.0/node_modules/command/lib/command.js:142const[,name,args]=nameAndArgs.match(/([^]+((.(/(;
我能够通过添加来获得最想要的行为
program.command('help', {isDefault: true})
.action(() => {
program.help();
})
.command(`install [pkg]`)
// ...
但这似乎是通过列出一个新的";帮助;命令在不添加新命令的情况下,当还没有参数时,如何避免解析器抱怨?
-
最新Commander中的默认行为是,如果您有子命令而没有指定子命令,则显示帮助。这听起来像你想要的!不确定错误是如何出现的,您可能需要打开指挥官问题以寻求帮助。
-
一般来说,如果您想要一些没有参数的自定义行为,那么在调用
parse()
之前检查自己可能很简单。例如
if (process.argv.length < 3)
program.help(); // exits
program.parse(process.argv);