【问题标题】:webpackDevMiddleware not auto reloadingwebpackDevMiddleware 不会自动重新加载
【发布时间】:2017-08-06 12:34:06
【问题描述】:

所以我使用 webpack dev 中间件如下:

const compiledWebpack = webpack(config),
          app             = express(),
          devMiddleware   = webpackDevMiddleware(compiledWebpack, {
            historyApiFallback: true,
            publicPath: config.output.publicPath,
            overlay: {
              warnings: true,
              errors: true
            },
            compress: true,
            stats: { colors: true }
          })


    app.use(devMiddleware)




    app.get('*', (req, res) => {
      // Here is it! Get the index.html from the fileSystem
      const htmlBuffer = devMiddleware.fileSystem.readFileSync(`${config.output.path}/index.html`)

      res.send(htmlBuffer.toString())
    })

    app.listen(PORT, function () {})

    console.log('Running on port ' + PORT)

但是,由于某种原因,我没有实时重新加载。我也没有获得覆盖功能。我使用这个设置是因为我使用的是 webpackhtmlplugin。

我觉得我在这里错过了一个简单的概念:(有什么想法吗?

【问题讨论】:

    标签: javascript express webpack html-webpack-plugin webpack-dev-middleware


    【解决方案1】:

    对于实时重新加载,您还需要添加webpack-hot-middleware

    在您的服务器中,您必须添加:

    const webpackHotMiddleware = require('webpack-hot-middleware');
    
    const hotMiddleware = webpackHotMiddleware(compiledWebpack);
    app.use(hotMiddleware);
    

    您还需要将 'webpack-hot-middleware/client' 添加到您的条目中,并将 webpack.HotModuleReplacementPlugin 添加到您的 webpack 配置中的插件中:

    entry: [
      'webpack-hot-middleware/client',
      './src/index.js' // Your entry point
    ],
    plugins: [
      new webpack.HotModuleReplacementPlugin()
    ]
    

    欲了解更多信息,请参阅Installation & Usage

    【讨论】:

    • 所以这似乎有帮助,但是,我还没有让它真正重新加载。我在 chrome 控制台中看到 HMR 输出包已重新加载,但我仍然需要手动刷新才能看到更改:(
    • 所以看起来 HMR 客户端代码需要包含在每个条目块中才能重新加载
    • 我想补充一点,如果您想在 HMR 无法自行触发时自动重新加载(例如,当控制台显示“需要完全刷新”时),请确保在指向'webpack-hot-middleware/client'的webpack条目末尾添加?reload=true
    • @krishgopinath,解决了 JS live reloading,非常感谢!但是,我的 SCSS 仍然没有实时重新加载。知道如何让它也能正常工作吗?
    • 如果你的输入字段是一个对象,而不是一个数组呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2014-07-17
    • 2018-12-23
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多