Angular项目升级后出现NullInjectorError: No provider for Re!错误求助
排查 Angular 升级后
NullInjectorError: No provider for Re! 问题 1. 定位「Re」对应的真实依赖
错误里的Re是代码压缩/混淆后的变量名,先还原原始错误信息:
- 打开
angular.json,找到项目的architect.build.configurations.development节点,修改配置:"development": { "optimization": false, "buildOptimizer": false, // 保留其他原有配置 } - 重新执行
ng serve,此时错误会显示真实的依赖类名,而非压缩后的简写。
2. 检查 account.module.ts 的依赖配置
结合你提供的模块截图排查:
- 确认组件/服务中注入的所有依赖,都已在
@NgModule的providers数组中声明,或是通过已导入的模块(比如第三方库的forRoot()配置)提供。 - 检查自定义服务/类在升级后是否变更了注入方式(比如从
@Injectable({ providedIn: 'root' })改为需要模块级声明,反之亦然)。
3. 校验 Angular 版本兼容性
全量升级后易出现依赖版本不匹配:
- 执行
npm list @angular/core @angular/common @angular/cli,确认所有核心包版本完全一致,无版本差异。 - 检查第三方库(UI组件、状态管理工具等)的版本是否适配当前Angular大版本。
4. 清理缓存后重新构建
除删除node_modules外,补充以下步骤:
- 删除
package-lock.json(或yarn.lock)文件。 - 执行
npm cache clean --force清理npm缓存。 - 重新运行
npm install,之后用ng serve --clearCache启动项目。
5. 排查懒加载模块问题
如果account.module是懒加载模块:
- 确认路由配置中懒加载路径正确,无模块导入遗漏。
- 检查模块内服务是否存在跨模块依赖未正确提供的情况。
内容的提问来源于stack exchange,提问作者Media Aminian
相关产品推荐
相关产品推荐

