Angular项目构建报错:@angular-devkit/build-angular版本兼容问题
解决Angular构建时
Cannot read properties of undefined (reading 'allErrors')报错 问题分析
报错根源是依赖版本不匹配:你使用的@angular-devkit/build-angular是15.2.0-next.0(预发布版),但@angular/cli是稳定版15.1.1,二者版本不一致导致webpack-dev-server依赖的ajv-errors与项目中其他依赖的ajv版本冲突,触发allErrors未定义的类型错误。
解决方案
1. 统一Angular DevKit与CLI版本
将@angular-devkit/build-angular降级为与CLI同版本的稳定版:
npm install @angular-devkit/build-angular@~15.1.1 --save-dev
2. 清理依赖缓存并重新安装
执行以下步骤彻底清除缓存与旧依赖:
- 删除项目根目录下的
node_modules文件夹 - 删除
package-lock.json文件 - 重新安装依赖:
npm install
3. (可选)锁定ajv相关依赖版本
如果上述步骤仍未解决问题,手动锁定ajv及ajv-errors的兼容版本:
在package.json中添加resolutions字段:
"resolutions": { "ajv": "^8.12.0", "ajv-errors": "^3.0.0" }
然后执行:
npx npm-force-resolutions npm install
注:
npm-force-resolutions用于强制npm使用指定的依赖版本,若未安装可先执行npm install -g npm-force-resolutions。
验证
执行构建命令测试:
ng build
内容的提问来源于stack exchange,提问作者Rohit
相关产品推荐
相关产品推荐

