Angular 9启动报错:@angular/core无ɵɵFactoryDeclaration等导出成员
Angular 9项目启动报错修复方案
核心问题
项目依赖版本严重不匹配:Angular 9搭配了高版本的Angular CDK(12.x)、Material(11.x),以及不兼容的@formio/angular版本,导致编译时出现大量API缺失、模块声明错误。
修复步骤
统一Angular生态依赖版本
Angular Material和CDK必须与Angular核心版本严格对应,执行命令安装Angular 9兼容的版本:npm install @angular/cdk@9.2.4 @angular/material@9.2.4 --save降级@formio/angular到兼容版本
高版本@formio/angular使用了Angular 10+的语法,Angular 9无法识别,安装适配的4.x版本:npm install @formio/angular@4.x --save清理并重新安装依赖
彻底清理旧依赖后重新安装,确保版本完全生效:
Windows系统:rd /s /q node_modules del package-lock.json npm installmacOS/Linux系统:
rm -rf node_modules package-lock.json npm install确认TypeScript版本
你的项目使用TypeScript 3.8.3,符合Angular 9的要求(3.6.x-3.8.x),无需调整。
错误原因解析
- Angular内部API缺失:高版本Material/CDK用到了Angular 10+才有的
ɵɵInjectorDeclaration、ɵɵNgModuleDeclaration等内部导出,Angular 9没有这些API,导致编译报错。 - 第三方模块声明不兼容:高版本@formio/angular的模块结构和Angular 9的NgModule语法不匹配,所以会提示“缺少@NgModule注解”的错误。
内容的提问来源于stack exchange,提问作者theK
相关产品推荐
相关产品推荐

