升级至Angular 15后自定义库模块无法找到求助
Angular 15升级后无法解析自定义库的排查方案
错误信息
Error: Module not found: Error: Can't resolve '@cto_compliance_amf/amf-library' in 'C:\Users\zkafpf7\Documents\MyProjects\amf_ui\src\app'
排查与解决步骤
检查自定义库的
package.json配置- 确认
main、module、typings字段指向编译后的正确文件,Angular 15优先依赖ES模块格式,建议将module字段指向fesm2020或更高版本的输出文件,例如dist/amf-library/fesm2020/amf-library.mjs - Node 16+对package exports解析更严格,需配置
exports字段明确导出路径:"exports": { ".": { "types": "./dist/amf-library/index.d.ts", "esm2020": "./dist/amf-library/fesm2020/amf-library.mjs", "module": "./dist/amf-library/fesm2020/amf-library.mjs", "main": "./dist/amf-library/amf-library.umd.js" } }
- 确认
验证Artifactory库包结构
- 登录Artifactory确认上传的库包包含完整
dist目录,编译后的文件路径与库package.json配置一致 - 检查Jenkins构建脚本,确保使用Angular 15兼容的编译命令(如
ng build amf-library --configuration production),Node 16环境下需确认输出格式参数正确
- 登录Artifactory确认上传的库包包含完整
本地项目依赖配置检查
- 删除本地
node_modules和package-lock.json,执行npm install重新拉取Artifactory上的最新库版本 - 检查项目
tsconfig.json中的paths配置,若存在错误指向需修正,或移除不必要的paths让npm自动解析 - 若库为CommonJS格式,在
angular.json的build配置中添加allowedCommonJsDependencies包含该库
- 删除本地
确认Node与npm版本兼容性
- Angular 15要求Node 16.14+/18.x,本地和Jenkins环境需符合版本要求,同时npm版本需匹配(如Node 16对应npm 8.x)
- 检查Jenkins构建时的
npm install命令,确保registry指向Artifactory,避免拉取错误版本的包
内容的提问来源于stack exchange,提问作者jhorton
相关产品推荐
相关产品推荐

