You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular10升级到12后运行报错:ɵɵFactoryTarget未定义如何解决

问题解决步骤

该报错核心原因为Angular核心依赖版本不匹配、公共库编译产物未适配Angular 12的Ivy编译规则,可按以下步骤逐一排查修复:

  • 统一所有Angular相关依赖版本
    确保package.json中所有@angular/开头的依赖包(包括@angular/core、@angular/common、@angular/compiler、@angular/cli等)版本均为12.x,同时配套的ng-packagr、@angular-devkit/build-angular版本也必须为12.x。删除本地node_modules目录、yarn.lock锁文件后重新执行yarn install安装依赖。
  • 重新编译所有Angular公共库
    你当前项目为library类型,Angular 10环境下编译的库产物仅适配旧版View Engine,不包含Angular 12新增的ɵɵFactoryTarget相关定义。需先清空历史dist输出目录,使用升级后的Angular 12配套工具重新执行ng build编译整个库。如果你的上层业务项目还依赖了其他自定义Angular库,所有依赖库都需要升级到Angular 12后重新编译。
  • 修正tsconfig编译配置
    打开项目下的tsconfig.lib.json和tsconfig.lib.prod.json,确认两项配置:
    1. compilerOptions.target不低于es2017,Angular 12起已停止对ES5输出的默认支持
    2. angularCompilerOptions.enableIvy设置为true,Angular 12默认使用Ivy引擎,关闭Ivy的View Engine编译产物会出现属性不存在的报错
  • 清理全局缓存
    执行yarn cache clean清理yarn全局缓存,同时删除项目根目录下的.angular缓存文件夹,避免旧编译缓存干扰。

内容的提问来源于stack exchange,提问作者raphisama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:51:01