升级到Angular 13后运行ng serve出现NGCC failed错误如何解决
问题根本原因
ts24.isNamedTupleMember is not a function报错的核心是TypeScript版本与Angular 13.0.2不兼容。Angular 13要求TypeScript版本范围为4.4.x ~ 4.6.x,当前项目中使用的TS版本低于该范围,缺失Angular编译器依赖的内置API方法。
另外你配置enableIvy: false无效,是因为Angular 13已经完全移除了对旧版View Engine渲染引擎的支持,该配置在13及更高版本中不再生效,所以NGCC(Angular兼容性编译器)仍会执行,进而触发版本不兼容错误。
解决步骤
- 第一步:清理旧依赖与缓存
执行以下命令删除旧的依赖文件与锁文件:
可选补充:清理NGCC历史缓存rm -rf node_modules package-lock.json yarn.locknpx ngcc --clear - 第二步:安装适配的TypeScript版本
执行命令安装Angular 13兼容的稳定TS版本:npm install typescript@4.5.5 --save-dev # 若使用yarn包管理器,执行:yarn add typescript@4.5.5 --dev - 第三步:校验其他配套依赖版本
检查package.json中以下依赖是否符合Angular 13的版本要求,不符合则手动修改后重新安装:@types/node:适配Node 12.20.2,推荐版本为12.20.55rxjs:版本范围要求7.4.x ~ 7.5.xzone.js:版本范围要求0.11.4 ~ 0.11.8
- 第四步:重新安装全量依赖
npm install # 若使用yarn包管理器,执行:yarn install - 第五步:启动项目验证
执行ng serve即可正常启动项目。
内容的提问来源于stack exchange,提问作者Sai Krishna
相关产品推荐
相关产品推荐

