在上篇文章中簡單的配置了下熱更新,用於了解的,本篇文章解決熱更新的效能優化問題。
在webpack.config.js檔案中的devserver屬性中增加hot: true
在配置
hot: true
時,如果出現uncaught error: [hmr] hot module replacement is disabled.
錯誤,說明需要安裝hotmodulereplacementplugin
外掛程式。在plugins屬性中加入new webpack.hotmodulereplacementplugin()
就可以了。但是,我沒有搞清楚,我的webpack沒有安裝該外掛程式也是可以正常執行的。小夥伴們可以測試下哈。。。
devserver:
樣式檔案可以直接使用hmr功能,因為style-loader內部實現了module.hot.accept的支援
html模板檔案預設不支援hmr,直接在入口檔案將html檔案引入就可以了
entry: ['./src/index.js', './src/index.html']
js檔案不可以,需要配置module.hot.accept,配置請看入口js檔案
index.js
中配置
if
(module.hot)
)}
入口檔案:index.js
import
'./css.css'
import replace from
'./replace.js'
console.
log(
"我是入口檔案");
// 配置下面**
if(module.hot)
)// 當然了,也可關閉指定子模組的hmr
// module.hot.decline('./replace.js')
}
replace.js
子模組
function
replace()
export
default replace;
webpack.config.js
配置檔案
const
=require
('path'
)const htmlwebpackplugin =
require
('html-webpack-plugin'
)module.exports =
, module:,]
,}, plugins:
[new
htmlwebpackplugin()
],mode:
'development'
,/*
hmr: hot module replacement 熱模組替換/模組熱替換
作用:乙個模組發生變化,只會重新打包這乙個模組,而不是打包所有模組,極大的提公升了構建速度
樣式檔案可以直接使用hmr功能,因為style-loader內部實現了module.hot.accept的支援
js檔案不可以,需要配置module.hot.accept 配置請看入口js檔案
html模板檔案預設也不支援hmr,直接在入口檔案將html檔案引入就可以了
*/devserver:
}
webpack4配置熱更新
目錄 step1 step2 step3 在資料夾中建立3個資料夾,分別是 src dist config 然後在src下建立乙個main.js 在dist下建立乙個index.html 在config下建立乙個webpack.dev.js 使用命令列,輸入 git init 建立乙個git的.檔案...
webpack熱更新原理
webpack dev server 主要包含了三個部分 1.webpack 負責編譯 2.webpack dev middleware 主要負責構建記憶體檔案系統,把webpack的 outputfilesystem 替換成 inmemoryfilesystem。同時作為express的中介軟體攔...
介面公升級版
介面公升級版 假設乙個介面由2w個子類實現它 假如在介面內加乙個方法 那麼按照定義就要在這所有的子類裡面都實現 所以我們引入新概念 介面裡可以定義普通方法 即這個普通方法可以不被實現 普通方法就要用default實現 介面還可以實現static方法 呼叫是直接由介面.方法名呼叫 inte ce im...