使用webpack-dev-server之前,在我们每次改变代码,或者资源文件的时候,整个页面其实都会刷新。而使用热更新之后,会直接替换掉,也仅仅替换更改后的依赖模块,而不用刷新整个页面,你可以简单理解成局部更新
- 在上一个package.json上修改的devServer即可,即添加hot: true即可
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin')
const {CleanWebpackPlugin} = require('clean-webpack-plugin')
module.exports = {
entry: {
app1111: './src/index.js',
},
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
},
devtool: 'eval',
devServer: {
contentBase: './dist',
hot: true,
port: 3000
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
title: 'Output Management'
})
],
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
}
};
注意,每次修改了package.json之后,必须重新运行项目才行,这样就可以实现热替换,局部跟新界面了
至于有些文章中提到的以下代码,其实不添加也行,因为webpack-dev-server中已经包含了这些模块,当然添加也行,不会有问题
new webpack.NamedModulesPlugin(),
new webpack.HotModuleReplacementPlugin()