Angular Build - 未捕获的类型错误:无法读取未定义的属性“id”

use*_*951 17 node.js webpack angular-cli angular

我已经成功地将我的 angular 应用程序构建为开发版本。我还没有将它作为生产构建完成,因为它给了我一些错误,我只需要测试开发构建。

开发构建过程顺利,没有错误或任何东西。然后我使用 nginx docker 容器中 dist 文件夹中的文件来托管文件。

问题是什么都没有显示,但是一个白页,在控制台中我收到一条错误消息“未捕获的类型错误:无法读取未定义的属性 id”。下面的完整消息似乎没有指向我写的任何内容,我已经在网上搜索了几个小时,但找不到关于此问题的任何内容。

在此处输入图片说明

我尝试了一些不同的东西,例如运行我手动阅读的“npx ivy-ngcc”编译了一些东西。无论如何,我是否可以获得有关错误的更多详细信息,以查看它是否是我所做的?

更新 因此,我恢复了在 main.ts 中注释掉的行,如下面的评论中所述。我还按照建议尝试了 'ng build --aot',它向我展示了一系列错误,这些错误似乎都与所使用的 devextreme 组件有关。当我使用来自 github 的 devextreme angular starter 项目开始该项目时,我觉得这很奇怪。

我收到如下消息:

  1. 'dx-scroll-view 不是有效的 HTML 元素'

  2. “node_modules/devextreme-angular/ui/drawer.d.ts - 错误:出现在 SideNavOuterToolbarModule 的 NgModule.imports 中,但无法解析为 NgModule 类”

小智 14

在此处输入图片说明

如果您进入 devtools 并单击 Sources,“不要暂停异常”并选中“暂停捕获的预期”并继续,直到出现“id 错误”,您将找到引发错误的模块。就我而言,是一个名为“ngx-card/ngx-card”的第三方库,它的模块是导致错误的原因(CardModule)。希望这至少有助于找到错误的原因

在此处输入图片说明


use*_*951 5

我设法通过在角度编译选项中禁用 ivy 来解决这个问题。一旦我这样做了,它就可以构建开发版本和生产版本,并且现在可以在 Nginx 中完美运行。

感谢所有提供帮助的人:)

  • 有没有办法使用 Ivy 并摆脱这个错误? (3认同)