【问题标题】:How to run Webpack Hot Module Replacement (HMR) in Production如何在生产环境中运行 Webpack 热模块替换 (HMR)
【发布时间】:2017-08-27 17:24:14
【问题描述】:

我喜欢在生产环境中运行 HMR,将其用于无缝的应用更新。我似乎找不到任何有关如何执行此操作的文档或教程。

我的设置目前是“无服务器”的,静态数据由 AWS S3 提供。我的第一个想法是我会创建某种“更新”服务器,让 HMR 客户端轮询更新,然后魔法就会起作用。

我的问题:

  • a) 我如何在生产中运行它(最佳)
  • b) 为此,“更新”服务器必须知道模块更改,如何?
    • 我知道带有更新的 json 文件是 HMR 了解更改所依赖的,我是否必须将某种文件推送到服务器?
    • 或者,我是否让服务器以某种方式监视 S3 文件并重新编译,进而触发更新。

一个完整的解决方案会很棒,但关于它如何工作的一些 sudo 逻辑也会很棒。

【问题讨论】:

  • @onny5561 你有什么发现吗?也有兴趣在 prod 中运行 hml。

标签: javascript webpack webpack-2 webpack-hmr hot-module-replacement


【解决方案1】:

阅读这两个文档以了解其工作原理:

不知道您所说的“无服务器”是什么意思...如果没有服务器,您将如何为网站提供服务?您至少需要在某处运行 webpack 或 nodejs/express 实例

这不是最优的。此功能被认为用于开发。 HMR 将向应用程序添加侦听器以进行文件更改,并添加用于用新模块替换旧模块的代码。这会增加代码的开销。最佳选择是no hmr

【讨论】:

  • 你显然没有足够的知识来回答它,你也没有完全阅读文档。
  • "您也可以在生产中使用它作为更新机制。在这里,您需要编写自己的管理代码,将 HMR 与您的应用程序集成。" - 根据文档
  • 谁说你不能做到这一点?我读到了,我只是说这不是你问的最佳。如果您已阅读文档,您应该在问题中说明这一点。我引用你的话:“我似乎找不到任何关于如何做到这一点的文档或教程”。您说any,我为您提供了至少一些 文档的链接。如果您已经阅读了这些内容,请在您的问题中说明。通过阅读您的问题,我事先无法知道这一点。
  • 来自文档“HMR 不适用于生产,这意味着它只能用于开发”。但是:“你也可以在生产中使用它作为更新机制。在这里你需要编写自己的管理代码,将 HMR 与你的应用程序集成。”其实read this
猜你喜欢
  • 2022-07-01
  • 2021-03-07
  • 2017-11-08
  • 2017-06-16
  • 1970-01-01
  • 2018-09-22
  • 2021-03-10
  • 2021-08-28
  • 2018-01-17
相关资源
最近更新 更多