这块判断 program.args 逻辑不理解
// 注册全局 options 和 命令 function registerCommand() { program .name(Object.keys(pkg.bin)[0]) .usage('<command> [options]') .version(pkg.version) // 配置版本 .option('-d, --debug', '是否开启调试模式', false) // 配置全局option并指定默认值 ; // 监听 --debug 全局 option program.on('option:debug', function () { if (program.opts().debug) { process.env.LOG_LEVEL = 'verbose' // 基于 --debug 全局 options 动态配置一个环境变量 } else { process.env.LOG_LEVEL = 'info' } log.level = process.env.LOG_LEVEL }); // 监听 未知命令 program.on('command:*', function (obj) { const availableCommandes = program.commands.map(cmd => cmd.name()) console.log(colors.red('未知的命令: ' + obj[0])) if (availableCommandes.length > 0) { console.log(colors.green('可用命令: ' + availableCommandes.join(','))) } }); program.parse(process.argv) // 解析命令行参数 // 没有命令 if (program.args && program.args.length < 1) { program.outputHelp() // 打印帮助文档 console.log() } }
为什么判断 --debug 或 -d 打印帮助文档不在 program.on('option:debug')中做?
if (program.args && program.args.length < 1) 这个if不是只判断了命令行中有没有命令吗?为什么只有输入 -d 或 --debug 才能进入这个if?我输入 -V 这种全局option没有进来
23
收起
正在回答 回答被采纳积分+1
1回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星