avatar

目录
webpack 性能优化(7)热更新

热更新 HMR(Hot Module Replacement)

热更新指对数据变化的部分进行局部跟新,而不进行页面刷新

配置

  1. devServer 中设置 hot 属性 true

  2. 使用 webpack.HotModuleReplacementPlugin() 热更新插件

    Javascript
    let webpack = require('webpack')
    module.exports = {
    devServer: {
    hot: ture, // 开启热更新
    contentBase: './dist'
    },
    plugins: [
    new webpack.HotModuleReplacementPlugin() // 热更新插件
    ]
    }
  3. 修改源文件

    Javascript
    // index.js 引用 source.js
    // index.js
    import str from './resource.js'
    console.log(str);

    if(module.hot){ // 是否热更新
    module.hot.accept('./resource.js', () => { //如果热更新了,在热更新完成后调用回调
    console.log('文件更新了');
    let str = require('./resource.js'); // 不能使用import,因为import只能写在页面顶端
    console.log(str.default);
    })
    }

    如果只单纯的更新文件,上面可以简写为

    Javascript
    import str from './source'
    console.log(str)

    if(module.hot){
    module.hot.accept()
    }
文章作者: GRIT
文章链接: https://grit0821.github.io/Blog/2020/02/04/webpack-%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%EF%BC%887%EF%BC%89%E7%83%AD%E6%9B%B4%E6%96%B0/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Grit's World