ng serve命令报未处理异常 无法找到@angular-devkit/build-angular模块
报错根因
- 核心版本不兼容:Angular CLI 12和@angular/core 10跨了两个大版本,Angular官方要求CLI大版本必须和核心库大版本严格对齐,版本不匹配会导致依赖链断裂。
@angular-devkit/build-angular作为CLI的核心构建依赖,版本和当前CLI不匹配,也无法和低版本核心库兼容,所以出现模块找不到的报错。 - 依赖安装异常:之前尝试升级核心库失败可能导致node_modules目录损坏,或者对应版本的
@angular-devkit/build-angular包没有被正确安装。 - 全局/本地CLI版本冲突:如果全局CLI是12版本,而项目本地依赖的CLI是10版本,调用ng命令时优先使用全局版本,也会触发依赖不匹配问题。
解决方案
方案一:对齐CLI版本到和核心库匹配的10版本(更稳妥,适合不想升级核心库的场景)
- 卸载全局高版本CLI:执行
npm uninstall -g @angular/cli - 安装对应版本的全局CLI:执行
npm install -g @angular/cli@10 - 进入项目目录,删除损坏的依赖文件:
- 删除node_modules目录:Windows可手动删除,或者执行
rmdir /s /q node_modules,Mac/Linux执行rm -rf node_modules - 删除package-lock.json(或yarn.lock)锁文件
- 删除node_modules目录:Windows可手动删除,或者执行
- 重新安装项目依赖:执行
npm install - 执行
ng serve验证启动是否正常
- 卸载全局高版本CLI:执行
方案二:升级核心库到和CLI匹配的12版本(适合需要高版本特性的场景)
- 先执行方案一的第3步,清理损坏的依赖
- 不要手动修改package.json升级核心库,使用Angular官方升级工具自动处理兼容:执行
ng update @angular/core@12 @angular/cli@12 - 升级完成后执行
npm install补全依赖 - 执行
ng serve验证启动是否正常
内容的提问来源于stack exchange,提问作者Explorador
相关产品推荐
相关产品推荐

