Angular 9 + IVY下HMR失败:Type AppComponent是AppModule和AppModule的声明部分的两个模块。

9

受影响的包

HMR + IVY

是否为回归问题?

在使用 pre-IVY 版本时,它可以正常工作。

描述

看起来 IVY 和 HMR 不太兼容?但我看到关于它们的已关闭的票据,所以我想应该是可能的。 在代码更改后重新加载时,出现以下未处理的 Promise 拒绝:

类型 AppComponent 是 2 个模块 AppModule 和 AppModule 的声明部分!请考虑将 AppComponent 移动到导入 AppModule 和 AppModule 的更高级别模块中。您还可以创建一个新的 NgModule,然后在 AppModule 和 AppModule 中导出和包含 AppComponent 后导入该 NgModule。 类型 Background 是 2 个模块 AppModule 和 AppModule 的声明部分!请考虑将 Background 移动到导入 AppModule 和 AppModule 的更高级别模块中。您还可以创建一个新的 NgModule,然后在 AppModule 和 AppModule 中导出和包含 Background 后导入该 NgModule。

...

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

当前环境

Angular 版本:

ng 9.0.1

cli 9.0.1


1
你找到解决办法了吗? - Simon Dragsbæk
还没有,亲爱的@SimonDragsbæk:/ - 1antares1
1个回答

5

请在您的angular.json配置文件中开启AOT,这样就可以了。

这是where的结构:

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

或者,仅供测试目的,您可以使用aot标志运行

ng serve --aot=true

更新

从Angular 11版本开始,它已经完全恢复了功能。


它对我触发了完整的页面重新加载...不能正常工作。 - TetraDev
@TetraDev,我进一步研究了这个问题,并相应地更新了这个答案。 - Simon Dragsbæk
@SimonDragsbæk 我没有收到其他错误。只是每次 HMR 更新时都会重新加载完整的模块依赖树。在 2020 年几乎一直处理这个问题,非常糟糕! - TetraDev
@TetraDev很糟糕,我认为这个答案应该作为问题的“状态页面”。 - Simon Dragsbæk
@TetraDev,这个问题已经在ng11中得到解决了,但你可能已经知道了。 - Simon Dragsbæk
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接