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

Angular 9执行ng build报错:找不到ɵɵFactoryDef成员的解决方法问询

解决Angular 9编译错误:找不到'ɵɵFactoryDef'的步骤

这个错误源于Angular核心库内部符号引用不匹配,通常和依赖版本不一致、缓存损坏或Node版本不兼容有关,以下是具体解决步骤:

1. 统一Angular依赖版本

你的Angular CLI(9.1.15)与核心包(9.1.13)版本存在差异,可能引发内部符号不匹配,执行以下命令对齐版本:

  • 卸载现有Angular核心及CLI相关包:
    npm uninstall @angular/core @angular/cli @angular/common @angular/compiler @angular/platform-browser @angular/platform-browser-dynamic
    
  • 重新安装匹配版本的依赖:
    npm install @angular/core@9.1.15 @angular/cli@9.1.15 @angular/common@9.1.15 @angular/compiler@9.1.15 @angular/platform-browser@9.1.15 @angular/platform-browser-dynamic@9.1.15
    

2. 清理依赖缓存并重装

依赖缓存损坏可能导致文件引用错误,操作如下:

  • 删除node_modules文件夹和package-lock.json:
    # Linux/Mac
    rm -rf node_modules package-lock.json
    
    # Windows
    rmdir /s /q node_modules & del package-lock.json
    
  • 重新安装所有依赖:
    npm install
    

3. 切换到兼容的Node版本

Angular 9官方推荐Node版本为12.x.x或14.x.x,你当前使用的Node 16.20.2版本过高,存在兼容性风险:

  • 使用nvm(Node版本管理器)切换到兼容版本(以14.21.3为例):
    nvm install 14.21.3
    nvm use 14.21.3
    
  • 验证版本是否切换成功:
    node -v
    

4. 检查并调整TypeScript版本

Angular 9.1.x兼容TypeScript 3.6.x-3.8.x,若上述步骤无效,可尝试降级到3.8.0:

npm uninstall typescript
npm install typescript@3.8.0 --save-dev

5. 清理Angular构建缓存

Angular CLI的缓存可能残留旧编译文件,执行:

ng build --clean

或直接删除.angular/cache文件夹:

# Linux/Mac
rm -rf .angular/cache

# Windows
rmdir /s /q .angular\cache

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:12:35