Angular 9 - NGCC因未处理的异常而失败。

问题描述 投票:3回答:1

在将依赖关系升级到Angular 9(并进行了必要的代码修改)后,编译应用程序会抛出一个错误。

Compiling @angularanimations : es2015 as esm2015 Compiling @angularanimations : es2015 as esm2015 Compiling @angularcore : es2015 as esm2015 Compiling @angularcore : es2015 as esm2015 Compiling @angularcore : es2015 as esm2015 Compiling @angularcore : es2015 as esm15 错误: Worker #5出错:TypeError。无法读取null属性'fileName'。

然后它继续抛出以下错误。

Compiling @angularcore : es2015 as esm2015 Compiling @angularcompilertesting : es2015 as esm2015 Compiling @angularcore : es2015 as esm2015 错误: 尝试用ngcc备份文件写入[email protected].__ivy_ngcc_bak,但它已经存在,所以不能写入,也不能备份[email protected]

这个错误可能是因为有两个或更多的入口点重叠,而且ngcc被要求处理一些文件超过一次。你应该检查这个包中的其他入口点,并设置一个配置来忽略任何你不使用的入口点。

编译 @angularcore : es2015 为 esm2015 发生了一个未处理的异常。NGCC失败。

angular typescript ivy angular-compiler
1个回答
12
投票

这个问题(NGCC失败)是我和我的同事开发者在我们的本地主机上遇到的。

需要说明的是,开发和生产的机器运行良好。

为了解决这个问题,我们按照接下来的步骤进行了处理。

  1. 在... tsconfig.json,在 angularCompilerOptions 已设置("启用常春藤": false)
  2. 将nodeJS更新为最新版本:(执行 节点 -v 返回v14.3.0)
  3. 已经删除了 node_modules 文件夹:(执行 "rm .\node_modules/" [在windows上],确保它已被成功删除)
  4. 已安装包:(执行 npm i )
  5. 在这里,项目已经准备好了。现在它的构建和运行没有错误。

我希望这能帮助你和其他遇到这种情况的人。


1
投票

检查你的node.js版本,用 node -v. 并检查Angular 9是否与它兼容.更新node.js到最新的LTS版本(12.8.1)为我工作.我用nvm(node版本管理器)做到了这一点.找到了一个很好的指导。此处.


0
投票

在tsconfig.json中设置 "enableIvy":false确实解决了这个特殊的错误。"Ivy "不是应该已经可以使用了吗?

我在下面找到的这个答案 请在此输入链接描述 @clement911的回答,经过大量的测试后,我的效果很好。


0
投票

我也有类似的问题。

在我的例子中,更新NodeJS到新版本就有帮助。


0
投票

我一般建议大家在每次完成部署(本地)后都要对项目进行手动备份,因为当你遇到这种问题时(一切与 NGCC errors)你可以直接硬删除 node_modules 文件夹,并将其从您的 last backup.然后再建立。

有时,当你没有能力更新 nodeJS末版,这个解决方案将是完美的。


0
投票

试着去除 node_modules 文件夹,再运行安装。

rm -rf node_modules
npm install

对我来说,它已经解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.