You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行ng serve启动Angular应用时遭遇NGCC failed错误求助

Fixing "NGCC failed" Error When Running ng serve

我帮你排查了一下,你遇到的这个Type Error: An unhandled exception occurred: NGCC failed错误,核心问题出在Angular核心依赖版本严重不匹配上。从你提供的package.json能清楚看到:

  • 部分核心包(比如@angular/core@angular/common)已经升级到了v10.0.3
  • 但另一批核心包(@angular/animations@angular/compiler@angular/forms等)还停留在v8.2.14

NGCC(Angular Compatibility Compiler)需要所有Angular核心组件版本统一才能正常工作,这种“混合版本”的状态直接导致了它运行失败。下面是具体的修复步骤:

步骤1:统一所有Angular核心依赖版本

我们把所有v8的核心包升级到和@angular/core一致的v10.0.3,在项目根目录执行下面的命令:

npm install @angular/animations@10.0.3 @angular/compiler@10.0.3 @angular/forms@10.0.3 @angular/platform-browser@10.0.3 @angular/platform-browser-dynamic@10.0.3 @angular/router@10.0.3 @angular/language-service@10.0.3

另外,zone.js的版本也要匹配v10,你当前用的~0.9.1是v8的版本,需要升级:

npm install zone.js@~0.10.3

步骤2:清理依赖缓存并重新安装

版本调整后,需要清理旧的依赖缓存,避免残留冲突:

  1. 删除node_modules文件夹和package-lock.json文件:
    rm -rf node_modules package-lock.json
    # 如果你用Yarn的话,执行:rm -rf node_modules yarn.lock
    
  2. 重新安装所有依赖:
    npm install
    

步骤3:升级TypeScript版本(关键)

Angular v10要求TypeScript版本至少是~3.9.7,但你当前的TypeScript是~3.4.5,版本过低会导致编译错误,执行升级命令:

npm install typescript@~3.9.7 --save-dev

步骤4:(可选)手动触发NGCC编译

如果执行完上面的步骤后还是有问题,手动运行NGCC命令强制处理兼容性:

npx ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points

做完这些操作后,再运行ng serve应该就能正常启动项目了。记住,Angular项目里保持所有核心依赖版本一致是避免这类编译错误的关键哦。

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

火山引擎 最新活动