webpack之热更新/替换

作者: 壮壮仔儿 | 来源:发表于2022-06-28 21:36 被阅读0次

模块热替换(HMR)
什么是模块热替换
HMR(Hot Module Replacement),在应用程序运行过程中,添加、替换、删除模块,而无需刷新整个页面

优点:

  • 不重新加载整个页面,这样可以保持某些应用程序状态不丢失
  • 只更新需要变化内容,节省开发时间
  • 修改了css、js源代码,会立即在浏览器更新,相当于直接在浏览器的devtools中修改样式
    使用HMR:
    webpack-dev-serve已经支持HMR,我们开启即可,不开启的话当我们修改了源代码,整个页面会自动刷新,使用的是live reloading(热加载)
    如果想要指定某个模块热替换:
if(module.hot){
    module.hot.accept("xx文件",()=>{
        //想要执行的操作
    })
}

原理:

  • webpack-dev-server会创建两个服务:提供静态资源的服务(express)和Socket服务(net.Socket)
  • express server负责直接提供静态资源的服务(打包后的资源直接被浏览器请求和解析)
    HMR Socket Server是一个socket的长连接:
  • 建立连接后双方可以通信
  • 当服务器监听到对应的模块发生变化时,会生成两个文件,.json(manifest文件)和.js文件(update chunk)
  • 通过长连接可以直接将这两个文件主动发送给客户端(浏览器)
  • 浏览器拿到这两个新的文件后,通过HRM runtime机制,加载这两个文件,并且针对修改的模块进行更新

相关文章

  • webpack之热更新/替换

    模块热替换(HMR)什么是模块热替换HMR(Hot Module Replacement),在应用程序运行过程中,...

  • 热重载、热更新

    热更新/ 热模块替换 hot module replacement 热更新:浏览器的无刷新更新(即webpack里...

  • 大白话讲webpack热更新

    webpack热更新,也称热替换,英文缩写HMR(Hot Module Replacement)。ok,介绍完定义...

  • webpack热更新和自动刷新

    什么是webpack更新? 模块热替换(HMR - Hot Module Replacement)是 webpac...

  • Webpack模块热替换原理(梁王的理论自习室)

    Webpack模块热替换(HMR) 热替换就是我代码更新了,我不需要手动f5页面就更新了,这个功能主要是用于开发过...

  • 常用plugin

    开启HMR 用途:页面热更新(模块热替换)首先我们要确保项目是基于webpack-dev-server或webpa...

  • webpack 热更新

    本节我们学习 webpack 的模块热更新,也可以叫做模块热替换。其目的是为了加快用户的开发速度,提高编程体验,方...

  • webpack 热更新

    本节我们学习 webpack 的模块热更新,也可以叫做模块热替换。其目的是为了加快用户的开发速度,提高编程体验,方...

  • 解决安装react-hot-loader后修改css/less文

    webpack中启动了模块热替换,也是全网页刷新,不是局部更新! 这两天在研究react-hot-loader如何...

  • webpack和vite对比

    热更新时webpack做了什么 总的来说,webpack的热更新就是,当我们对代码做修改并保存后,webpack会...

网友评论

    本文标题:webpack之热更新/替换

    本文链接:https://www.haomeiwen.com/subject/ylyzvrtx.html