Webpack hot reloading using only webpack-dev-middleware. This allows you to add hot reloading into an existing server without webpack-dev-server.
See example/ for an example of usage.
First, install the npm module.
npm install --save-dev webpack-hot-middleware
Next, enable hot reloading in your webpack config:
-
Add the following three plugins to the
plugins
array:plugins: [ new webpack.optimize.OccurenceOrderPlugin(), new webpack.HotModuleReplacementPlugin(), new webpack.NoErrorsPlugin() ]
Occurence ensures consistent build hashes, hot module replacement is somewhat self-explanatory, no errors is used to handle errors more cleanly.
-
Add
'webpack/hot/dev-server'
into theentry
array. This allows webpack to detect and reload updated modules when notified. -
Add
'webpack-hot-middleware/client'
into theentry
array. This connects to the server to receive notifications when the bundle rebuilds.
Now add the middleware into your server:
-
Add
webpack-dev-middleware
the usual wayvar webpack = require('webpack'); var webpackConfig = require('./webpack.config'); var compiler = webpack(webpackConfig); app.use(require("webpack-dev-middleware")(compiler, { noInfo: true, publicPath: webpackConfig.output.publicPath }));
-
Add
webpack-hot-middleware
attached to the same compiler instanceapp.use(require("webpack-hot-middleware")(compiler));
And you're all set!
More to come soon, you'll have to mostly rely on the example for now.
Configuration options can be passed to the client by adding querystring parameters to the path in the webpack config.
'webpack-hot-middleware/client?path=/__what&timeout=2000&overlay=false'
- path - The path which the middleware is serving the event stream on
- timeout - The time to wait after a disconnection before attempting to reconnect
- overlay - Set to
false
to disable the DOM-based client-side overlay.
Copyright 2015 Glen Mailer.
MIT Licened.