Angular项目更新依赖后执行ng serve报错:dep.isEqualResource is not a function
解决Angular更新后
dep.isEqualResource is not a function启动错误 这个坑我之前帮朋友排查过,大概率是用ncu -u批量更新依赖时,Angular核心包、CLI以及webpack相关依赖版本不兼容导致的——跨大版本更新时特别容易触发这类问题。下面给你几个靠谱的解决方案:
方案一:同步Angular CLI与核心包版本
ncu更新时常会把@angular/core更到新版本,但@angular/cli没同步跟上,版本不匹配就会抛出这个错误:
- 先卸载全局和项目里的旧CLI:
npm uninstall -g @angular/cli npm uninstall @angular/cli - 安装和你当前
@angular/core主版本完全匹配的CLI(比如你的core是8.x,就装8.x系列的CLI):npm install @angular/cli@^8.3.29 --save-dev注意:版本号要和
@angular/core的主版本保持一致,比如core是10.x就装@angular/cli@^10.x.x - 重新安装所有依赖:
npm install
方案二:彻底清理依赖缓存与构建文件
有时候缓存或损坏的lock文件也会导致这类诡异问题,试试彻底清理:
- 清空npm缓存:
npm cache clean --force - 删除本地依赖包和lock文件:
# Mac/Linux系统 rm -rf node_modules package-lock.json # Windows系统 rd /s /q node_modules package-lock.json - 重新安装依赖并启动项目:
npm install ng serve
方案三:修复@angular-devkit/build-angular依赖
这个包是Angular构建的核心,它的版本和webpack深度绑定,如果版本不兼容也会出现dep.isEqualResource相关错误:
- 先卸载当前的build-angular包:
npm uninstall @angular-devkit/build-angular - 安装和你Angular版本匹配的版本(比如Angular 8对应
0.803.29):npm install @angular-devkit/build-angular@^0.803.29 --save-dev - 再次尝试启动项目:
ng serve
额外提醒
以后用ncu -u更新时,尽量避免跨大版本直接跳跃(比如从Angular 7直接更到10),最好参考Angular官方的升级指南逐步更新,能大幅减少版本不兼容的问题。
内容的提问来源于stack exchange,提问作者Haneep CR
相关产品推荐
相关产品推荐

