全稱是Hot Module ReplaceMent(HMR),理解成熱模塊替換或者模塊熱替換都可以吧,和.net中的熱插拔一個意思,就是在運行中對程序的模塊進行更新。這個功能主要是用于開發(fā)過程中,對生產(chǎn)環(huán)境沒有任何幫助(這一點區(qū)別.net熱插拔)。效果上就是界面的無刷新更新。
HMR基于WDS,style-loader可以通過它來實現(xiàn)無刷新更新樣式。但是對于JavaScript模塊就需要做一點額外的處理,怎么處理繼續(xù)往下看。因為HMR是用于開發(fā)環(huán)境的,所以我們修改下配置,做兩份準備。一個用于生產(chǎn),一個用于開發(fā)。
const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const webpack = require('webpack'); const PATHS = { app: path.join(__dirname, 'app'), build: path.join(__dirname, 'build'), }; const commonConfig={ entry: { app: PATHS.app, }, output: { path: PATHS.build, filename: '[name].js', }, plugins: [ new HtmlWebpackPlugin({ title: 'Webpack demo', }), ], } function developmentConfig(){ const config ={ devServer:{ //使能歷史記錄api historyApiFallback:true, hotOnly:true,//關閉熱替換 注釋掉這行就行 &n