webpack熱更新原理

現(xiàn)在前端腳手架盛行,直接集成了包管理和打包工具,目前最流行的打包工具依然是webpack。當(dāng)你起了dev-server之后,會(huì)自動(dòng)打包和熱更新,幫你快速開發(fā)。但其相關(guān)原理估計(jì)很多人并不知曉。本文淺析其熱更新原理?;A(chǔ)用法和相關(guān)概念移步:https://webpack.js.org/

webpack的熱更新需要依賴一個(gè)插件HotModelReplacement.

因?yàn)閣ebpack打包后的bundle.js文件并不具備熱更新的能力,HMR插件將HMR Runtime注入到bundle.js中,使bundle.js可以HMR Server建立webSocket通信。webSocket后續(xù)會(huì)寫一個(gè)庫(kù)扔到npm;

代碼到客戶端:

1,text editor 進(jìn)行編寫代碼;

2,生成file文件,扔給webpack處理;

3,webpack compiler在服務(wù)端進(jìn)行編譯打包成bundle.js文件;

4,通過(guò)Bundle Server將bundle.js在瀏覽器(客戶端)中訪問(wèn);

此刻HRM已經(jīng)把HMR Runtime工具注入到bundle.js中可以與服務(wù)端的HMR Server進(jìn)行websocket通信了

5,當(dāng)編譯后的文件進(jìn)行改變之后,HMR Server將變化的文件傳輸給HMR Runtime。

6,HMR Runtime把更改的文件注入到瀏覽器中,websocket通信顯示文件內(nèi)容。

流程圖表分析:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • webpack熱更新,也稱熱替換,英文縮寫HMR(Hot Module Replacement)。ok,介紹完定義...
    單調(diào)先生閱讀 1,392評(píng)論 0 0
  • 概念作用webpack Compile將 JS 編譯成 BundleBundle Server提供文件在瀏覽器端以...
    劉員外__閱讀 1,669評(píng)論 0 2
  • 使用webpack可幫助我們的開發(fā)以及打包,在開發(fā)過(guò)程中,有時(shí)候我們只修改了部分代碼并想不必刷新整個(gè)頁(yè)面即可看到更...
    悄敲閱讀 6,398評(píng)論 0 0
  • Hot Module Replacement(簡(jiǎn)稱 HMR) 包含以下內(nèi)容: 熱更新圖 熱更新步驟講解 第一步:w...
    zhongmeizhi閱讀 9,211評(píng)論 1 5
  • 構(gòu)建一個(gè)小項(xiàng)目——FlyBird,學(xué)習(xí)webpack和react。(本文成文于2017/2/25) 從webpac...
    布蕾布蕾閱讀 17,115評(píng)論 31 98

友情鏈接更多精彩內(nèi)容