一个模块发生变化,只会打包当前模块,而不是所有模块 热模块替换

    1. devServer:{
    2. contentBase:resolve(__dirname,'build'),
    3. //启动GZIP压缩
    4. compress:true,
    5. //本地启动端口号
    6. port:3000,
    7. //自动打开浏览器
    8. open:true,
    9. //开启hmr
    10. hot:true
    11. }

    image.png

    样式文件css/less文件:默认可以使用HMR功能,因为style-loader内部实现了 html文件:默认可以不使用HMR功能,同时导致html文件无法热更新 js文件:默认可以不使用HMR功能

    1. jshmr
    2. //index.js
    3. if (module.hot) {
    4. // 一旦 module.hot 为true,说明开启了HMR功能。 --> 让HMR功能代码生效
    5. module.hot.accept('./print.js', function() {
    6. // 方法会监听 print.js 文件的变化,一旦发生变化,其他模块不会重新打包构建。
    7. // 会执行后面的回调函数
    8. print();
    9. });
    10. }