Angular生产构建报错:无法解析record-mapper.registry路径的解决建议
解决Angular构建时FESM2015打包路径解析错误的方案
1. 修正导入路径
- 优先用包名导入替代相对路径:如果
common是项目子包,直接通过包名引入,示例:import { RecordMapperRegistry } from '@your-project/common/lib/record/record-mappers/record-mapper.registry'; - 若必须用相对路径,重新计算层级:原路径多了一层
../,正确路径应为../../../../../../common/lib/record/record-mappers/record-mapper.registry(从core/esm2015/lib/store/record到目标目录只需回退5级)
2. 确保common包构建完整
- 单独构建
common包:执行ng build common --configuration production,检查dist/common下是否存在record-mapper.registry对应的JS文件(比如esm2015目录里的.js文件),不能只有.d.ts类型定义 - 检查
common包的package.json:确认main、module、es2015字段指向正确的入口文件,避免构建只生成类型文件
3. 清理缓存后重新构建
- 删除整个
dist目录:# Linux/macOS rm -rf dist # Windows rmdir /s /q dist - 按依赖顺序构建:先构建
common再构建core:ng build common --configuration production ng build core --configuration production
4. 检查项目依赖配置
- 确认
core包的package.json已正确声明对common包的依赖,本地包依赖可配置为:"dependencies": { "@your-project/common": "file:../common" }
内容的提问来源于stack exchange,提问作者Mario
相关产品推荐
相关产品推荐

