执行npm build后运行npm start报错:无法解析@daml.js/MythirdDamlApp模块
Failed to compile
./src/components/LoginScreen.tsx
Module not found: Can't resolve '@daml.js/MythirdDamlApp' in 'C:\Users\uclick\Desktop\Data\babasD\Misc\SmartContracts\MythirdDamlApp\ui\src\components'
This error occurred during the build time and cannot be dismissed.
排查与解决方法
该报错核心是前端项目无法找到DAML合约编译后生成的@daml.js域下的绑定依赖,按以下步骤逐一排查即可:
- 第一步:生成DAML对应的JavaScript绑定包
回到项目根目录(即存放daml.yaml的目录,不是ui子目录),依次执行以下命令:daml build:编译DAML合约生成DAR包daml codegen js .daml/dist/MythirdDamlApp-*.dar -o ui/daml.js:基于DAR包生成前端可用的JavaScript/TypeScript绑定,输出到ui目录下的daml.js文件夹
- 第二步:检查前端依赖配置
进入ui子目录,打开package.json文件,确认dependencies字段中存在以下配置:
没有的话手动添加后,在ui目录执行"@daml.js/MythirdDamlApp": "file:daml.js/MythirdDamlApp"npm install安装本地依赖。 - 第三步:校验导入语句拼写
打开报错的LoginScreen.tsx文件,确认引入@daml.js/MythirdDamlApp的语句拼写、大小写和生成的包名完全匹配,路径大小写在Windows系统下也存在敏感场景,需要完全一致。 - 第四步:清理缓存重试
如果上述步骤都完成后仍报错,在ui目录下依次执行:- 删除node_modules文件夹和package-lock.json文件
- 执行
npm install重新安装所有依赖 - 执行
npm start重新启动项目
内容的提问来源于stack exchange,提问作者Babasaheb Pinjar
相关产品推荐
相关产品推荐

