Webpack生产浏览器重新加载

时间:2019-04-24 20:52:57

标签: vue.js webpack

我希望每次对生产脚本进行新构建时都重新加载用户网页。我可以打电话给端点获取webpack的当前版本号吗? 我不是在服务器上构建脚本,而是在本地构建脚本并scp最终结果。

2 个答案:

答案 0 :(得分:1)

您不想使用--watch webpack cli命令,因为它会影响您正在运行的服务器/ api,是的,当与Hot Module Reloading一起使用时,它可以触发重新加载-它会添加一个ping的端点通过各种方式,其中包括轮询后备。

您不希望在生产中使用此功能,客户端可能会发送请求以非常快速地比较版本。相反,您应该在构建过程中生成manifest.json,并将其与公共资产一起作为浏览器客户端可以访问的端点。

然后您可以控制刷新间隔。您也可以将它与服务人员联系在一起。但是一个基本示例将使用简单的xhr / fetch,检查是否在manifest.json中以合理的setInterval更改了构建哈希,以及是否具有调用location.reload()。测试时的提示:location.reload(true)避免浏览器缓存。

要生成:

var ManifestPlugin = require('webpack-manifest-plugin');

module.exports = {
    // ...
    plugins: [
      new ManifestPlugin()
    ]
};

答案 1 :(得分:0)

与webpack无关。 Webpack是一个模块捆绑器。它确实有一个Webpack dev server用于开发目的,可以进行实时重新加载(使用websocket)。在构建应用程序时,将只有静态文件。您可以选择服务这些文件的服务器,因此捆绑包中既没有websocket服务器,也没有websocket客户端。

您想在生产中做些什么,但对我来说似乎很复杂,没有太多好处。