最新版Caporal引入prog模块报cannot find module prog问题咨询
问题原因
你混用了Caporal新旧版本的导入写法:Caporal从2.0版本开始包名已经更新为@caporal/core,原有的caporal包是旧版,如果你只安装了新版@caporal/core,自然找不到caporal对应的模块。而且你需要用到的Int类型校验器,在新版中已经直接从@caporal/core导出,不需要通过旧版的prog对象调用。
正确写法(CommonJS 规范,匹配你现有代码风格)
直接从@caporal/core中解构导出你需要的program和类型校验器即可:
#!/usr/bin/env node const { program, Int } = require("@caporal/core"); program .command("random", "Generate random alphanumeric") .option("--length", "length of string", Int, 32) .action(({ logger, options }) => { const leng = options.length; logger.info(leng); }); program.run();
可选写法(ES Module 规范)
如果你的项目使用ES Module规范,先在项目package.json中添加配置"type": "module",再用以下导入方式:
#!/usr/bin/env node import { program, Int } from "@caporal/core"; program .command("random", "Generate random alphanumeric") .option("--length", "length of string", Int, 32) .action(({ logger, options }) => { const leng = options.length; logger.info(leng); }); program.run();
内容的提问来源于stack exchange,提问作者lian abdiansyah tanjung
相关产品推荐
相关产品推荐

