如何在webpack中禁用热模块替换以进行生产

时间:2016-03-21 13:11:36

标签: webpack

在捆绑生产时如何删除HMR的所有引用?

我的生产Webpack配置没有引用HMR,但在浏览器调试器中,客户端不断调用/ __ webpack_hmr

任何人都可以对此有所了解吗?

- 我的配置

item_id

4 个答案:

答案 0 :(得分:3)

此外,您可能希望通过触发调用来控制前端的中间件客户端:



crc32_combine()




通过webpack.config.js中的entry: [ 'webpack-hot-middleware/client', './src/index' ]控制输入。

请参阅running webpack in production.

答案 1 :(得分:2)

取决于您如何设置配置。我有一个节点环境变量,告诉我我是否在生产模式下运行。如果它不是生产,我在我的server.js中使用以下内容设置webpackDevMiddleware。

if (process.env.NODE_ENV !== 'production') {
    app.use(connectLiveReload());
    let config = require('./webpack.config'),
        compiler = webpack(config);

    app.use(webpackDevMiddleware(compiler, {
        noInfo:     true,
        publicPath: config.output.publicPath
    }));

    app.use(webpackHotMiddleware(compiler));
}

答案 2 :(得分:1)

您可以尝试确保已打开网站的所有浏览器窗口都使用了更新的捆绑软件。

我遇到了同样的问题,除了在我的情况下,我在服务器上看到了GET / __ webpack_hmr调用,因为我让服务器打印了所有请求方法和路径。

结果是,我打开了一个我没有注意到的浏览器窗口,该窗口正在运行我的开发包。它正在发出请求。

答案 3 :(得分:0)

除了使用env变量禁用代码之外,我建议在构建时完全删除HMR代码,这也会最小化您的最终捆绑和源代码

https://www.npmjs.com/package/webpack-strip-block可以用于