Angular13升级14后ng serve报错 如何安装匹配的Angular CLI版本
问题根因
报错由本地依赖版本冲突、版本不匹配直接导致:
- 项目devDependencies中多个依赖仍为Angular 13适配版本,和升级后的Angular 14不兼容:
@angular-builders/custom-webpack版本为^13.1.0,仅支持Angular 13- 全量
@angular-eslint/*包版本为13.5.0,仅支持Angular 13
- 项目未在devDependencies中显式声明本地
@angular/cli依赖,本地安装时极易拉取到版本不匹配的包,或是node_modules中残留Angular 13升级遗留的旧版CLI缓存,导致本地执行ng serve时调用到冲突版本。全局安装14版CLI时,命令优先调用全局无冲突的版本,因此可以正常运行。
修复步骤
按顺序执行以下操作即可解决:
- 清理本地残留依赖文件
- 删除项目根目录下的
node_modules文件夹 - 删除项目根目录下的锁文件(npm对应
package-lock.json、yarn对应yarn.lock、pnpm对应pnpm-lock.yaml)
- 删除项目根目录下的
- 修改package.json中不兼容的依赖配置,将以下字段更新为适配Angular 14的版本,同时显式声明本地CLI版本:
"devDependencies": { // 其余依赖保持原有配置不变,仅修改以下项 "@angular-builders/custom-webpack": "^14.0.0", "@angular-eslint/builder": "14.0.0", "@angular-eslint/eslint-plugin": "^14.0.0", "@angular-eslint/eslint-plugin-template": "14.0.0", "@angular-eslint/schematics": "14.0.0", "@angular-eslint/template-parser": "14.0.0", "@angular/cli": "~14.0.2" } - 重新执行
npm install安装全量依赖 - 安装完成后先执行
npx ng version校验,确认输出的所有Angular生态包版本均为14.x,再执行ng serve即可正常启动项目。
补充校验:如果上述操作完成后仍有报错,执行
npm ls @angular/cli排查依赖树,若存在间接引入的旧版@angular/cli,可在package.json中添加overrides字段强制锁定全依赖树的CLI版本:"overrides": { "@angular/cli": "~14.0.2" }
内容的提问来源于stack exchange,提问作者obaram
相关产品推荐
相关产品推荐

