如何解决Caporal.js中命令行数值参数返回布尔、默认值不生效的问题
Caporal.js option返回布尔值问题解决方案
问题原因
你遇到的问题根源是option定义语法错误:Caporal.js中如果option需要接收传入值,必须在option名称后添加<值占位符>标识,否则会被默认识别为无参数的布尔开关选项,你后续声明的NUMERIC类型、默认值32都会失效。
修改后代码
#!/usr/bin/env node const { program } = require("@caporal/core"); program .command("random", "Generate random alphanumeric") // 核心修改:添加<length>占位符声明该选项需要接收参数 .option("--length <length>", "length of number", program.NUMERIC, 32) .action(({ logger, options }) => { const length = options.length; logger.info(length); }); program.run();
注:代码中已删除未使用的
letters变量,避免出现未定义变量的校验报错。
效果验证
- 执行
./app.js random,输出默认值32 - 执行
./app.js random --length=10或./app.js random --length 10,输出10
内容的提问来源于stack exchange,提问作者lian abdiansyah tanjung
相关产品推荐
相关产品推荐

