【问题标题】:Running ng server with --hmr still causes page to reload on changes [closed]使用 --hmr 运行 ng 服务器仍会导致页面在更改时重新加载 [关闭]
【发布时间】:2021-03-09 13:14:47
【问题描述】:

我刚刚将我的应用程序升级到 Angular ^11.0.2 并想尝试 CLI 上的 --hmr 选项。从 CLI 看,它似乎已启用,但在对页面执行更改时,它仍会在浏览器中完全刷新。

在编译应用程序时会提到这一点

启用 HMR 后项目仍会实时重新加载,但要充分利用 HMR Angular CLI 项目中默认不包含的附加应用程序代码是必需的。

但是 webpack 配置上的信息并没有真正帮助我进行 Angular 项目。我们确实在项目中使用了@angular-builders/custom-webpack,但这仅用于合并一些 JSON。有人能指出我在哪里检查与 HMR 相关的特定配置吗?

【问题讨论】:

    标签: angular webpack-hmr hot-module-replacement


    【解决方案1】:

    看来我必须在 main.ts 中添加以下内容

    declare var module: any;
    if (module['hot']) {
        module['hot'].accept();
        module['hot'].dispose(() => ɵresetCompiledComponents());
    }
    

    我仍然收到原始帖子中提到的消息,但至少我看到了不同的行为。如果还有其他需要调整的地方,请告诉我:)

    【讨论】:

    • import { enableProdMode, ɵresetCompiledComponents } from '@angular/core';
    • 这段代码的来源是什么,有没有你建模的URL?
    • 不确定我最初是从哪里得到的,但我认为这可能是源 URL gitmemory.com/issue/angular/angular-cli/17324/686472836
    • 这在 Angular 12 中不起作用。在 Angular 文档中的任何地方也没有提到它......
    • 发现这在 Angular cli 10.0.5 中运行良好。尽管某些 scss 文件在 chrome 工作区中未显示为绿色,可直接进行编辑。但是,是的,非常酷的功能,感谢分享。
    猜你喜欢
    • 2020-09-30
    • 2016-08-30
    • 2013-05-19
    • 1970-01-01
    • 2019-05-09
    • 2018-06-30
    • 2017-01-13
    • 1970-01-01
    • 2015-03-29
    相关资源
    最近更新 更多