Angular 8迁移至9时遇'export 'Renderer' was not found in '@angular/core'问题
解决Angular 9迁移中"export 'Renderer' was not found in '@angular/core'"的问题
这个报错的核心原因是Angular 9正式移除了Renderer类——它在Angular 8就已经被标记为废弃,官方推荐用Renderer2替代。既然报错出现在node_modules里,说明是你项目依赖的第三方包还在使用已被移除的旧API,重新安装@angular/core没用,得从依赖入手解决:
- 先定位问题依赖:在项目根目录用搜索工具(比如IDE全局搜索或命令行
grep -r "import { Renderer } from '@angular/core'" node_modules/)找出哪个包还在引用Renderer。 - 更新兼容依赖:找到对应包后,去它的npm页面或官方文档确认是否有支持Angular 9的版本,执行
npm update [包名]更新,或者手动修改package.json里的版本号后重新跑npm install。 - 无兼容版本的替代方案:如果该包没有更新,要么换一个功能类似、支持Angular 9的替代包;如果是内部维护的包,就把里面的
Renderer替换成Renderer2:- 导入语句改成
import { Renderer2 } from '@angular/core' - 构造函数注入换成
constructor(private renderer: Renderer2) - 调整API调用(比如
invokeElementMethod这类旧方法要换成Renderer2的对应API,比如直接操作元素属性、用setAttribute等)
- 导入语句改成
- 清理缓存收尾:更新依赖后,执行
npm cache clean --force清理npm缓存,再跑ng clean清理Angular构建缓存,重新安装依赖并构建项目。
内容的提问来源于stack exchange,提问作者Willsonraj
相关产品推荐
相关产品推荐

