模組熱替換(HMR)的作用是,在應用運行時,無需刷新頁面,便能替換、增加、刪除必要的模組,本篇文章主要介紹了webpack熱模組替換(HMR)/熱更新的方法,現在分享給大家,也給大家做個參考。
這是一篇關於webpack熱模組替換的最簡單的配置(不需要react),也稱為熱更新。
模組熱替換(HMR)的作用是,在應用運行時,無需刷新頁面,便能替換、增加、刪除必要的模組。 HMR 對於那些由單一狀態樹構成的應用非常有用。因為這些應用的組件是 “dumb” (相對於 “smart”) 的,所以在組件的程式碼變更後,組件的狀態依然能夠正確反映應用的最新狀態。
webpack-dev-server內建“live reload”,會自動重新整理頁面。
檔案目錄如下:
app
#a.js
#component.js
index.js
#node_modules
#package.json
webpack.config.js
#component.js中導入了a.js。 index.js導入了component.js。修改任一文件,都能達到熱更新功能。
最重要的是,在index.js中,有這樣一段程式碼:(完成熱更新必須需要)
1 2 3 |
|
下面是package.json設定:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
從依賴就可以看到,這真的是一個最簡單的設定了。其中nodemon用來監聽webpack.config.js檔案的狀態,只要改變,就重新執行指令。
關於”html-webpack-plugin”,這裡是可以省略的。具體的設定請看:https://www.npmjs.com/package/html-webpack-plugin 。
在這裡,定義了兩個指令,一個是start,用來開發環境;一個是build,用來生產環境。 --watch用來監聽一個或多個文件,--exec是nodemon用來執行其它的指令。具體的配置請看:https://c9.io/remy/nodemon。
接下來是webpack.config.js了,既然package.json的scripts中定義了兩個指令,我們還是要在設定檔中實作兩個狀況(development和production,你也可以修改設定其中一種)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
|
關於Object.assign,第一個參數是目標對象,如果目標對像中的屬性具有相同的鍵,則屬性將被來源中的屬性覆蓋。後來的源的屬性將類似地覆蓋早先的屬性。淺賦值,對於物件的複製使用=,即引用複製。
然後開啟指令列到目前目錄,執行npm start或npm run build就好啦。請注意,前者是在開發環境下,是沒有輸出檔案的(在記憶體),只有執行後者才會有輸出檔。
demo的程式碼在:https://github.com/yuwanlin/webpackHMR
分享ajax的三種解析模式
#比較Ajax的三種實作及JSON解析# ##############探討.get .post .ajax ztree 還有後台servlet傳遞資料的相關知識################## ########
以上是webpack熱模組替換(HMR)/熱更新的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!