Simple webpack plugin to add HMR accepting code to need modules.
Webpack Version | Plugin version | Status |
---|---|---|
^5.0.0 | ^4.0.0 | ✅ |
^4.37.0 | ^4.0.0 | ✅ |
npm i -D hot-accept-webpack-plugin
yarn add -D hot-accept-webpack-plugin
import { HotAcceptPlugin } from 'hot-accept-webpack-plugin';
const { HotAcceptPlugin } = require('hot-accept-webpack-plugin');
webpack.config.js
module.exports = {
plugins: [new HotAcceptPlugin(options)]
};
Type: string | RegExp | (string | RegExp)[]
Required
In this example plugin will add module.hot.accept
to all modules with filename index.js
.
webpack.config.js
const { HotModuleReplacementPlugin } = require('webpack');
const { HotAcceptPlugin } = require('hot-accept-webpack-plugin');
module.exports = {
plugins: [
new HotModuleReplacementPlugin(),
new HotAcceptPlugin({
test: /index\.js$/
})
]
};
If you want to add module.hot.accept
only to one specific file, you need declare more precise path to file. You can check next example.
For example, we have the following file structure
src/index.js
src/components/TodoList.js
src/components/index.js
If we want to add module.hot.accept
only to src/index.js
, we should use following RegExp: /src\/index\.js$/
.
webpack.config.js
const { HotModuleReplacementPlugin } = require('webpack');
const { HotAcceptPlugin } = require('hot-accept-webpack-plugin');
module.exports = {
plugins: [
new HotModuleReplacementPlugin(),
new HotAcceptPlugin({
test: /src\/index\.js$/
})
]
};
webpack.config.js
const { HotModuleReplacementPlugin } = require('webpack');
const { HotAcceptPlugin } = require('hot-accept-webpack-plugin');
module.exports = {
plugins: [
new HotModuleReplacementPlugin(),
new HotAcceptPlugin({
test: 'index.js'
})
]
};
webpack.config.js
const { HotModuleReplacementPlugin } = require('webpack');
const { HotAcceptPlugin } = require('hot-accept-webpack-plugin');
module.exports = {
plugins: [
new HotModuleReplacementPlugin(),
new HotAcceptPlugin({
test: ['one-module.js', /two-module.js$/]
})
]
};
This plugin is based on modify-source-webpack-plugin.