Angular12升13后ng serve/build报错:keyword 'id'需替换为$id
Angular 13升级后"NOT SUPPORTED: keyword 'id'"错误解决办法
问题原因
这个错误源于依赖版本不兼容:你使用的@angular-builders/custom-webpack是11.1.1版本,和Angular13的CLI依赖的ajv版本存在冲突——旧版本的custom-webpack依赖的ajv使用了已被废弃的id关键字,而Angular13要求使用$id。
解决步骤
升级@angular-builders/custom-webpack到Angular13兼容版本
执行以下命令安装适配Angular13的版本:npm install @angular-builders/custom-webpack@^13.1.0 --save-dev(注:13.x系列版本均可,建议选择和@angular/cli版本接近的)
清理依赖并重新安装
为了彻底解决版本冲突,执行以下操作:# 删除node_modules目录 rm -rf node_modules # 删除package-lock.json(若使用yarn则删除yarn.lock) rm package-lock.json # 重新安装依赖 npm install可选:同步其他第三方依赖版本
检查并升级其他可能存在版本滞后的第三方依赖,比如@angular/flex-layout可以升级到13.x版本:npm install @angular/flex-layout@^13.0.0-beta.38 --save
完成以上步骤后,重新运行ng serve或ng build即可解决该错误。
内容的提问来源于stack exchange,提问作者User978438
相关产品推荐
相关产品推荐

