Angular Build-未捕获的 TypeError:无法读取未定义的属性“id”
我已成功将我的 angular 应用构建为开发版本。我尚未将其构建为生产版本,因为它会给我一些错误,我只需要测试开发版本。
开发构建过程进展顺利,没有任何错误或任何问题。然后,我使用 nginx docker 容器中 dist 文件夹中的文件来托管文件。
问题是除了白页之外什么都没有显示,并且在控制台中我收到一条错误消息,提示“未捕获 TypeError:无法读取未定义的属性‘id’”。下面的完整消息似乎与我写的任何内容无关,我花了几个小时在网上搜索,但找不到有关此问题的任何信息。
我尝试了一些不同的方法,例如运行“npx ivy-ngcc”,我读到它手动编译了一些东西。有没有什么方法可以让我获得有关错误的更多详细信息,看看是否是我做的?
更新 因此,我已恢复了我在 main.ts 中注释掉的行,如下面评论中所述。我还尝试了建议的“ng build --aot”,它向我展示了一系列错误,这些错误似乎都与使用的 devextreme 组件有关。我发现这很奇怪,因为我使用来自 github 的 devextreme angular starter 项目启动了该项目。
我收到如下消息:
-
“dx-scroll-view 不是有效的 HTML 元素”
-
“node_modules/devextreme-angular/ui/drawer.d.ts - 错误:出现在 SideNavOuterToolbarModule 的 NgModule.imports 中,但无法解析为 NgModule 类”
我设法通过在 angular 编译选项中禁用 ivy 解决了该问题。我这样做后,它立即在构建开发和生产版本时起作用,并且现在在 Nginx 中完美运行。
感谢所有提供帮助的人 :)
在 Angular 项目的
tsconfig.json
中,输入以下内容以禁用新的 Angular 模板引擎 Ivy
{
...
"angularCompilerOptions": {
"enableIvy": false
}
}