Angular 5/1.x 混合应用程序可以支持 HMR 吗?

2023-12-25

The 记录在案 https://github.com/angular/angular-cli/wiki/stories-configure-hmr使用 Angular 5 应用程序配置 HMR 的方法不适用于混合 Angular 5/1.x 应用程序。

核心问题是module.hot.accept处理程序(定义于@角类/hmr https://github.com/gdi2290/angular-hmr) 尝试重新初始化根上的组件ApplicationRef,但在混合应用程序中,Angular 5 根上没有组件(因为顶级组件是 AngularJS 1.x 组件)。

如果有一种方法可以枚举应用程序中的 Angular 5 组件,那么重新加载逻辑似乎可能会起作用,但我没有看到任何方法可以做到这一点。

有什么建议么?


如果您遵循downgradeModule战略,这是可能的。性能升级 https://angular.io/guide/upgrade-performance

基本上可以遵循本指南 https://github.com/angular/angular-cli/wiki/stories-configure-hmr启用 HMR,除了创建hmr.ts和操纵main.ts,因为你不使用它downgradeModule战略。

更多您在中激活 hmrAngularJs主模块如下:

// import all libs you need to boot
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {downgradeModule} from '@angular/upgrade/static';
import {MyAngularSevenModule} from "./my-angular-seven.module";
import {environment} from './environments/environment';
import {enableProdMode} from '@angular/core';

// important!: rename angular.module to not conflict with global `module`
import {module as angularModule, element, bootstrap} from 'angular';

// check if in prod mode
if(environment.production) {
  enableProdMode();
}

// bootstrap you new Angular 7 main module
const bootstrapFn = (extraProviders) => {
  const platformRef = platformBrowserDynamic(extraProviders);
  return platformRef.bootstrapModule(MyAngularSevenModule);
};
const downgradedModule = downgradeModule(bootstrapFn);

// check if hmr should be enables and accept it if possible
if(environment.hmr) {
  if(module && module.hot) {
    module.hot.accept();
  }
}

// construct your AngularJs module
const ngModule = angularModule("app", []);

// important!: manually bootstrap AngularJs
element(() => {
  try {
    bootstrap(document, ['app']);
  } catch(error) {

  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 5/1.x 混合应用程序可以支持 HMR 吗? 的相关文章

随机推荐

  • matplotlib 图例:如何指定字体粗细?

    指定 matplotlib 图例字体粗细的最佳方法是什么 我可以用 matplotlib rcParams update legend fontsize 12 设置字体大小 但是当我使用 matplotlib rcParams update
  • Java:util_USBUIRT.dll:找不到依赖库

    我想使用这个 jar 文件 http sourceforge net projects uirt j http sourceforge net projects uirt j 在个人项目中 目前 我一直在使用 Eclipse 并尝试导入该
  • 使用 opengrok 搜索历史记录

    我一直在使用 OPENGROK 来搜索我的 SVN 代码存储库 它需要存储库的签出版本来为其建立索引 当我在我的系统上签出版本时 我已经能够实现通过存储库进行搜索 当我尝试搜索存储库的历史记录时 我陷入了困境 我能做些什么 另外 如何更新索
  • Windows 7中uwsgi安装错误

    尝试根据安装uwsgi文档 http uwsgi docs readthedocs org en latest tutorials Django and nginx html我在 Windows 7 上收到以下错误 我应该怎么办 uwsgi
  • 无法在 JavaScript 中创建 Vue Router 实例

    下列的导游 https router vuejs org en essentials getting started html我到达了需要创建 Vue 实例的地步 这似乎有效 但是 我还需要在 Vue 的构造函数中提供一个 Vuew Rou
  • 每次按下灌木丛时按下都会生成草药

    我在 2D 游戏中从森林中的一些灌木丛中生成了一个香草集合 我的脚本具有克隆 Herbs 预制件的功能 但当我按下灌木丛时没有任何反应 这里有什么问题 Script using System Collections using System
  • 从另一个 data.frame 填充 data.frame 中的缺失值

    我有一个带有行和列名称的 N x M 数据框 DF1 其中许多值都是 NA 还有第二个数据框 DF2 1 x M 因此实际上可能是一个向量 其行名称与 DF1 相同 我想使用 DF2 来填充 DF1 列中的缺失值 任何帮助将非常感激 Udp
  • IBM Data Server Client v9.7fp5 的日期时间字段溢出

    使用 EntityFramework v4 1 和 IBM 数据服务器客户端v9 7fp5 DB 首先根据预定义的具有 DATE 列的 DB2 表生成代码 DB2 DATE 列在代码生成期间映射到 NET DateTime 数据类型 当尝试
  • 如何在 mysql 中使用 UPDATE 自动声明行或资源

    我有一个资源表 比如说汽车 我想以原子方式声明它 然后我想要有关我刚刚声明的资源的信息 如果每个用户只能使用一种资源 我可以采取以下技巧 UPDATE cars SET user bob WHERE user IS NULL LIMIT 1
  • 如何在 iOS OpenGL ES 2.0 中绘制星星

    这个问题以前就被问过 但在我的搜索中是好几年前的事了 答案始终是使用纹理映射 但我真正想做的是将星星表示为单个顶点 你可能认为我正在使用一种简单的方法 但事实上 单点光源实际上看起来相当不错和现实的 但我想用高斯模糊之类的东西来处理那个光点
  • xcode 8 beta 3:预期的“,”连接多子句条件的一部分

    在 xcode 8 beta 3 中收到新警告 此语法有什么问题 或者 xcode 中是否存在错误 SwiftyJSON swift 772 35 预期的 连接多子句条件的一部分 if let errorValue error where
  • 使用 for 循环反转数组没有任何作用[重复]

    这个问题在这里已经有答案了 我试图使用 for 循环反转 15 个数字的数组 但由于某种原因数组顺序保持不变 我的代码如下所示 int main int arr 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • Hibernate 无法添加或更新子行:外键约束失败

    当我尝试将对象保存到数据库中时出现错误 java sql SQLIntegrityConstraintViolationException Cannot add or update a child row a foreign key con
  • Backbone.history.start() 阻止后退按钮离开页面

    我现在在一些应用程序上遇到了这个问题 所以我想知道我是否对 Backbone 历史记录做错了什么 情况是这样的 我有两页 比方说 index html app html 索引页只是一个普通的 平面的 HTML 页面 带有一个链接app ht
  • Google 跟踪代码管理器延迟了 window.load?

    我有一个页面在加载时触发 ajax 调用 window load function updateDeliverySlots 我的顶部还有 Google 跟踪代码管理器 javascriptbody 我知道当前的建议是将其放在head部分 但
  • gmail api 对于特定标签返回总邮件数为 0

    我一直在使用 获取标签 API 来获取特定标签的详细信息 直到最后几天一切都正常 我现在观察到 消息总数 计数始终为 0 未读消息 计数正确显示 我已经在我的应用程序中使用了它 并且也尝试过https developers google c
  • Carrierwave / Fog / S3“不是公认的存储提供商”

    我有一个使用 Carrierwave 进行文件上传的 Rails 应用程序 它一直运行良好 但我想开始使用 Amazon S3 进行图像存储 我收到此错误 ArgumentError is not a recognized storage
  • 通过字符串winforms获取资源项

    在 C Winforms 应用程序中 如何访问Resources通过字符串 例如我知道我可以做Properties Resources MyImage但是 直到运行时我才知道我需要哪个图像 包含一个字符串 MyImage 我怎样才能访问Pr
  • Azure 表存储、WCF 服务和枚举

    这是我的问题 定义订单的类有一个属性称为PaymentStatus 这是一个enum定义如下 public enum PaymentStatuses int OnDelivery 1 Paid 2 Processed 3 Cleared 4
  • Angular 5/1.x 混合应用程序可以支持 HMR 吗?

    The 记录在案 https github com angular angular cli wiki stories configure hmr使用 Angular 5 应用程序配置 HMR 的方法不适用于混合 Angular 5 1 x