Angular11升级ag-grid-angular至v28报ɵɵInjectorDeclaration缺失错误
Angular 11升级ag-grid-angular至v28报TS2694: ɵɵInjectorDeclaration不存在错误
报错复现场景
集成AG Grid的Angular 11项目,将ag-grid-angular依赖从v27升级到v28后,批量触发编译报错,核心报错信息如下:
node_modules/ag-grid-angular/lib/ag-grid-angular.module.d.ts:7:21 - error TS2694: Namespace '"/node_modules/@angular/core/core"' has no exported member 'ɵɵInjectorDeclaration'. 7 static ɵinj: i0.ɵɵInjectorDeclaration<AgGridModule>;
报错指向声明文件中i0.ɵɵInjectorDeclaration<AgGridModule>;代码段,提示@angular/core命名空间无该导出成员。
根本原因
AG Grid v28版本的ag-grid-angular适配包最低兼容Angular 12及以上版本,ɵɵInjectorDeclaration是Angular 12才在@angular/core中对外暴露的内部编译API,Angular 11版本的核心包中不存在该成员,版本不兼容直接触发类型校验报错。
修复方案
按需选择以下任意一种方案处理即可:
- 保留Angular 11版本:回退AG Grid相关依赖到兼容Angular 11的最高v27正式版本,执行以下命令锁定版本安装:
安装完成后清空npm install ag-grid-angular@27.3.0 ag-grid-community@27.3.0 --save-exactnode_modules目录、包管理锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新执行依赖安装和项目编译即可。 - 保留AG Grid v28版本:将项目的Angular整体版本升级至12及以上,满足
ag-grid-angular的最低版本依赖要求,升级完成后重新编译即可解决报错。
内容的提问来源于stack exchange,提问作者Stephen Cooper
相关产品推荐
相关产品推荐

