HMR 失败并显示 Angular 9 + IVY:类型 AppComponent 是 2 个模块声明的一部分:AppModule 和 AppModule

HMR fails with Angular 9 + IVY: Type AppComponent is part of the declarations of 2 modules: AppModule and AppModule

受影响的包

HMR + IVY

这是回归吗?

IVY 前,有效

描述

IVY和HMR好像不太搭?但是我看到他们的门票已经关闭,所以我想这应该是可能的。 我在代码更改后重新加载:

Unnhandled Promise rejection: Type AppComponent is part of the declarations of 2 modules: AppModule and AppModule! Please consider moving AppComponent to a higher module that imports AppModule and AppModule. You can also create a new NgModule that exports and includes AppComponent then import that NgModule in AppModule and AppModule. Type Background is part of the declarations of 2 modules: AppModule and AppModule! Please consider moving Background to a higher module that imports AppModule and AppModule. You can also create a new NgModule that exports and includes Background then import that NgModule in AppModule and AppModule.

...

我们可以看看其他人如何更好地调查: https://www.gitmemory.com/issue/storybookjs/storybook/8494/551763214

当前环境

Angular版本:

ng 9.0.1

cli 9.0.1

在你的 angular.json 配置文件中打开 AOT,应该可以做到这一点

这里是where的结构:

{
  "projects": {
    "x": {
      "architect": {
        "build": {
          "options": {
            "aot": true,
          },
          "configurations": {
            "local": {
              "aot": true
            },

或者,仅出于测试目的,您可以 运行 改用 aot 标志

ng serve --aot=true

更新

从 Angular 版本 11 开始,它再次具有完整的功能

## 更新

请注意,这只是修复,因此您现在可以实际处理您的项目。 angular 团队正在研究一个解决方案,以便我们可以尽快恢复对 HMR 的全面支持。

在此处查找 angular 存储库中的相关问题 https://github.com/angular/angular/issues/35265

这里是为了修复它而发布的 PR(仍在草案中) https://github.com/angular/angular/pull/37474