我无法弄清楚与 View Engine 和 IVY 兼容的库之间的代码差异。 我最近将我的代码迁移到 Agular 16,并收到一些模块的错误,它们不属于 NgModule 类。我认为原因是 ngcc 编译器的贬值。那么,谁能告诉我属于每个运行时的库的代码差异?
我想让我的自定义库与 IVY 兼容
View Engine 是 Angular 的旧版渲染引擎,在 v9 中被 Ivy 渲染引擎取代。
当您构建 Angular 库时,Angular 编译器将以不使用模板指令的方式编译组件(比较库中的组件与最终包中的组件)。那些中间编译的组件不兼容(Ivy vs ViewEngine),因此 Angular 团队构建了 NGCC(Angular Compatibility Compiler)来确保从 VE 到 Ivy 的平滑过渡。
在 v16 中,Angular 团队删除了允许 ViewEngine 库与 Ivy 渲染引擎一起运行的 NGCC,从而结束了从 ViewEngine 到 Ivy 的过渡期