$ npm i --save-dev fastify-webpack-hmr
The plugin supports the following
Webpack versions. Please refer to corresponding branch in PR and issues.
|version||branch||fastify||webpack||end of support|
⚠️ This project is meant to be used in development environment only.
For a more detailed exampe please check out the
The plugin accepts a configuration object, with a following properties:
If you pass a custom
webpack compiler instance to the plugin, it will pass that to the middlewares.
Note: if you pass a
compiler option the plugin omits the
const fastify =const HMR =const webpack =const webpackConfig =const compiler =fastifyfastify
If you pass this option instead of a
compiler, the plugin tries to set up the webpack compiler and will pass that compiler instance to the middlewares. For the detailed configuration options please check the
If config is a
string it has to be a path to a valid webpack configuration file.
const fastify =const HMR =const join =const config =fastifyfastify
Or you can directly pass a valid webpack configuration
const fastify =const HMR =const join =const hotConf = 'webpack-hot-middleware/client?path=/__webpack_hmr'const config =mode: 'development' // Prevents webpack warning// Add the webpack-hot-middleware to the entry point array.entry: hotConfoutput:publicPath: '/assets'filename: 'main.js'fastifyfastify
Additional configuration options which will be passed to
disable webpack-hot-middleware if you set this option
If it is an
object it will be passed to
Multi compiler mode
In multi compiler mode you must pass the
webpackDev.publicPath option to the plugin.
Tip: Don't forget to set name parameter when you register
webpack-hot-middlewarein entry array. It makes sure that bundles don't process each other's updates.
const fastify =const HMR =const join =const hotConf = 'webpack-hot-middleware/client?path=/__webpack_hmr'const config =name: 'mobile'mode: 'development'entry:`&name=mobile`stats: falseoutput: filename: 'mobile.js' publicPath: '/assets'name: 'desktop'mode: 'development'entry:`&name=desktop`stats: falseoutput: filename: 'desktop.js' publicPath: '/assets'const webpackDev = publicPath: '/assets'fastifyfastify
This plugin decorates the
fastify instance with
webpack object. The object has the following properties:
Licensed under MIT.