概念 | 作用 |
---|---|
webpack Compile | 将 JS 编译成 Bundle |
Bundle Server | 提供文件在浏览器端以服务器的方式的访问(正常是通过文件目录来访问) |
HMR Server | 将热更新的文件输出给 HMR Runtime |
HMR Runtime | 在项目打包阶段,会被注入到浏览器端的bundle.js里面 |
bundle.js | 构建后最终输出的文件 |
热更新过程
1. 启动阶段 ①->②->A->B
- 代码文件通过
webpack Compile
进行打包 - 将打包好的文件传输给
Bundle Server
- 然后
Bundle Server
会让文件以服务器的方式让浏览器可以访问到 - 代码展示到浏览器
2. 更新阶段 ①->②->③->④
- 变更后的代码同样会通过
webpack Compile
进行打包编译,、 - 编译好之后会发送给
HMR Server
-
HMR Server
即可知道哪些资源、js模块、文件发生了改变 - 然后通过 websorket 传输
.hot-update.json
的形式,通知HMR Runtime
-
HMR Runtime
在接收到文件变化后,就会更新代码 - 最终代码更新,且无需刷新浏览器