詳解關于webpack多入口熱加載很慢的原因
之前為公司搭建了套webpack多頁面應用腳手架,起初用得挺爽,資源整合打包,組件化開發(fā),各種組件復用,需要什么就拿什么,后來入口有50個頁面了,慢慢的發(fā)現了每次按保存后的熱加載等待時間越來越長,需要等待10幾秒,實在太影響開發(fā)效率,于是我查找原因。
觀察發(fā)現,每次到熱加載時會在emitting HtmlWebpackPlugin這停留很久。

于是我想知道它到底停留了多長時間呢?
在package.json內加入--profile,它會告訴你編譯過程中哪些步驟耗時最長。

停止npm,重新運行webpack-dev-server,修改下文件按保存,觀察控制臺,發(fā)現總花費時長為15035毫秒,在emitting就花費了13239毫秒,這emitting應該就是指上面的圖片的emitting HtmlWebpackPlugin了,看來我們解決HtmlWebpackPlugin,熱加載速度就能恢復正常了。

HtmlWebpackPlugin就是我們入口對應的的html頁面,new的頁面越多,熱加載速度就會越慢。

我嘗試注釋掉所有html頁面,只留下一個案例詳情html頁面,重新啟動webpack-dev-server,修改文件按下保存,發(fā)現速度驚人,只用了772毫米,看來問題出在html-webpack-plugin這個插件上。


難道是我的html-webpack-plugin配置有問題嗎,于是我在網上尋找解決辦法,做了各種嘗試,直到我找到html-webpack-plugin的github上放棄尋找了,原來插件作者有發(fā)布幾十條lssues(鏈接https://github.com/jantimon/html-webpack-plugin/issues),其中就包括該插件的多頁面性能問題。

我嘗試點進問題談論里面看了看,里面的談論已經不能算是怎樣配置html-webpack-plugin插件了,涉及webpack底層的東西,覺得沒必要去深究了,也讓人不得不思考webpack現在是否適合多頁面開發(fā)啊。。
總結:
1、HtmlWebpackPlugin除了正在開發(fā)的頁面,其它注釋掉。
2、等待插件作者修復此問題。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JQuery入門——用one()方法綁定事件處理函數(僅觸發(fā)一次)
one()方法功能是為所選的元素綁定一個僅觸發(fā)一次的處理函數,感興趣的朋友可以了解下它的調用語法為:one(type, [data], fn),閱讀本文或許有意外的收獲呢2013-02-02
Javascript圖像處理—圖像形態(tài)學(膨脹與腐蝕)
上一篇文章,我們講解了圖像處理中的閾值函數,這一篇文章我們來做膨脹和腐蝕函數2013-01-01
JavaScript中for of和for in的區(qū)別詳解
對于初學者,我們或許只知道無論是for of還是for in他們都有一個功能那就是遍歷,至于具體的細節(jié)或許我們不是很清楚,那么接下來我們就來詳細的區(qū)分一下for of和for in他們之間的不同點和相同點,需要的朋友可以參考下2023-06-06
用JS動態(tài)改變表單form里的action值屬性的兩種方法
下面小編就為大家?guī)硪黄肑S動態(tài)改變表單form里的action值屬性的兩種方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05
關于實現代碼語法標亮 dp.SyntaxHighlighter
關于實現代碼語法標亮 dp.SyntaxHighlighter...2007-02-02

