webpack 熱更新原理

Rocen發表於2024-08-19

對於webpack熱模組更新的總結如下:

  • 透過webpack-dev-server建立兩個伺服器:提供靜態資源的服務(express)和Socket服務
  • express server 負責直接提供靜態資源的服務(打包後的資源直接被瀏覽器請求和解析)
  • socket server 是一個 websocket 的長連線,雙方可以通訊
  • 當 socket server 監聽到對應的模組發生變化時,會生成兩個檔案.json(manifest檔案)和.js檔案(update chunk)
  • 透過長連線,socket server 可以直接將這兩個檔案主動傳送給客戶端(瀏覽器)
  • 瀏覽器拿到兩個新的檔案後,透過HMR runtime機制,載入這兩個檔案,並且針對修改的模組進行更新

相關文章