首页 > 解决方案 > “ng serve”上的 EntryComponent 错误,但在保存文件后消失

问题描述

该项目运行没有任何问题,但升级到 Angular 12 后,我收到奇怪的错误:ERROR in ConfirmDialogComponent cannot be used as an entry component when execution ng serve.

奇怪的是,转到具有该条目组件声明的模块并保存它(强制重建),消除了错误。但是,这仅在服务器终止并ng serve再次执行之前有效。然后必须再次执行保存解决方法。

那是其中有错误的模块:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { GridModule } from '@progress/kendo-angular-grid';
import { TooltipModule, TooltipSettings } from '@progress/kendo-angular-tooltip';
import { DialogModule } from '@progress/kendo-angular-dialog';
import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
import { TabStripModule } from '@progress/kendo-angular-layout';
import { ConfirmDialogComponent, AlertDialogComponent } from '@reasult/angular-common';
import { SharedModule } from '../shared/shared.module';

@NgModule({
    imports: [
        CommonModule,
        GridModule,
        TooltipModule,
        DialogModule,
        DropDownsModule,
        TabStripModule,
        SharedModule
    ],
    providers: [TooltipSettings],
    entryComponents: [ConfirmDialogComponent, AlertDialogComponent]
})
export class DesignModule {}

它始终是第一个entryComponents收到错误的组件。即使我更改了数组中组件的顺序。

不确定要提供哪些额外的细节 - 一旦有人给出提示,就会编辑问题。

任何人都有任何想法,可能是什么原因造成的?

标签: angularkendo-ui

解决方案


尝试进入ts.config.json并定义以下内容以禁用常春藤编译

"angularCompilerOptions": {
    "enableIvy": false
  },

可能是常春藤编译器在ng serve失败

正如角度文档所述

入口组件已被 Ivy 渲染引擎弃用


推荐阅读