Angular v8 到 v11 - 禁用常春藤的 entryComponents 问题

Posted

技术标签:

【中文标题】Angular v8 到 v11 - 禁用常春藤的 entryComponents 问题【英文标题】:Angular v8 to v11 - entryComponents issue with Ivy disabled 【发布时间】:2021-05-26 19:50:29 【问题描述】:

从 v8 迁移到 v11 后,我的项目 entryComponents 遇到了问题。

目前我需要禁用 Ivy 构建,因为我需要坚持使用 PrimeNG v8 组件,并假设如果使用旧构建引擎运行 11,仍然需要 entryComponents 数组。但是每当我触发一个嵌入了 entryComponent 的对话框时,我都会得到:

Error: No component factory found for DynamicDialogComponent. Did you add it to @NgModule.entryComponents?

错误中的这个组件不是我的 entryComponents 之一,而是我用于对话框的 PrimeNG 组件。如果我打开常春藤,应用程序很好 - 但仅限于开发模式。如果是为 prod 构建的,它会抱怨 Prime 模块已经过时,所以我需要关闭它,直到我有时间重构。

有没有办法在 v11 中定义这些 entryComponents 并关闭 Ivy?

谢谢!

【问题讨论】:

【参考方案1】:

好的,问题解决了,我很惭愧地说这是一个愚蠢的问题!不知何故(可能在最初的 Prime 迁移到 11 期间)DynamicDialogModule 已从所有模块中删除:

import  DynamicDialogModule  from 'primeng/dynamicdialog';

到处添加它,问题就消失了。我去拿我的外套.... :(

【讨论】:

以上是关于Angular v8 到 v11 - 禁用常春藤的 entryComponents 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何解决这个错误? angular v11 原理图工作流程失败。往上看

如何在没有 Ivy 的情况下编译库?

有没有人总结过ARMv7和ARMv8的区别

自定义角度库组件显示错误“不是已知元素”

node-sass 埋坑记录

为啥在尝试升级 Angular 时出现“没有导出成员”错误?