全稱是Hot Module ReplaceMent(HMR),理解成熱模塊替換或者模塊熱替換都可以吧,和.net中的熱插拔一個(gè)意思,就是在運(yùn)行中對(duì)程序的模塊進(jìn)行更新。這個(gè)功能主要是用于開發(fā)過程中,對(duì)生產(chǎn)環(huán)境沒有任何幫助(這一點(diǎn)區(qū)別.net熱插拔)。效果上就是界面的無刷新更新。
HMR基于WDS,style-loader可以通過它來實(shí)現(xiàn)無刷新更新樣式。但是對(duì)于JavaScript模塊就需要做一點(diǎn)額外的處理,怎么處理繼續(xù)往下看。因?yàn)镠MR是用于開發(fā)環(huán)境的,所以我們修改下配置,做兩份準(zhǔn)備。一個(gè)用于生產(chǎn),一個(gè)用于開發(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,//關(guān)閉熱替換 注釋掉這行就行 &n