如何使用Angular CLI 13运行Angular 12项目并解决相关报错
问题根因
两个报错属于连锁问题:
ng serve找不到@angular-devkit/build-angular模块的核心原因是npm install执行失败,项目依赖没有安装完成,devkit相关的开发依赖缺失。npm install抛出的ERESOLVE错误是因为你的项目是Angular 12.1.2版本,官方要求rxjs的对等依赖版本为^6.5.3,但项目package.json中声明的rxjs版本是7.2.0,版本不匹配;且npm 7及以上版本默认会严格校验对等依赖,直接阻断了安装流程。
解决方案
提供两种可选择的解决路径,按需选择即可:
方案1:保留项目原有Angular 12版本运行(改动最小,最稳妥)
- 第一步:清理残留的无效依赖文件
执行命令:# Mac/Linux系统执行 rm -rf node_modules package-lock.json # Windows系统cmd执行 rd /s /q node_modules & del package-lock.json - 第二步:跳过对等依赖校验完成安装
执行命令:
该参数会禁用npm的严格对等依赖校验规则,按照项目声明的版本完成依赖安装。npm install --legacy-peer-deps - 第三步:使用项目本地的Angular CLI启动,避免全局13版本冲突
执行命令:
npx会优先调用项目内部安装的Angular 12版本CLI,不会触发全局13版本和本地12版本的兼容问题。npx ng serve
方案2:升级项目到Angular 13匹配全局CLI版本
如果需要将项目升级到最新的Angular 13版本,按以下步骤操作:
- 第一步:清理残留的无效依赖文件,和方案1第一步一致。
- 第二步:执行Angular版本升级命令
npx @angular/cli@13 update @angular/core@13 @angular/cli@13 # 如果项目用到Angular Material,再执行下面的命令 npx @angular/cli@13 update @angular/material@13 - 第三步:完成依赖安装
npm install - 第四步:启动项目验证
如果出现API废弃报错,按照控制台提示调整对应代码即可。ng serve
补充说明:如果需要同时维护多个不同Angular版本的项目,建议不要全局安装Angular CLI,所有ng命令都通过npx调用项目本地的对应版本,可彻底避免全局和本地版本冲突的问题。
内容的提问来源于stack exchange,提问作者Aless Hosry
相关产品推荐
相关产品推荐

