最近將項(xiàng)目的構(gòu)建工具從webpack2升級(jí)到了webpack4。構(gòu)建速度快了,生成的目標(biāo)文件也小了很多。但是出現(xiàn)了一個(gè)煩人的問題,就是現(xiàn)在修改了任意代碼之后,瀏覽器都會(huì)整頁刷新,而不是之前webpack2的jsonp方式局部刷新,導(dǎo)致開發(fā)效率降低了很多。然后我找到了問題出在dev-derver.js的html-webpack-plugin相關(guān)的代碼這里:// force page reload when html-webpack-plugin template changescompiler.plugin('compilation', function (compilation) {
compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {debugger
hotMiddleware.publish({action: 'reload'})
cb()
})
})可能是webpack4中的html-webpack-plugin-after-emit事件的觸發(fā)機(jī)制不一樣了,導(dǎo)致webpack在每次修改任意代碼文件時(shí),都會(huì)觸發(fā)html-webpack-plugin-after-emit事件,從而導(dǎo)致了整個(gè)頁面刷新?;蛘呤莣ebpack4的模塊引用機(jī)制不一樣了,導(dǎo)致單個(gè)文件修改后被錯(cuò)誤識(shí)別為巨大的修改(入口模板修改?),而必須刷新整個(gè)頁面?我把這代碼去掉,確實(shí)可以解決每次都刷新整個(gè)頁面的問題,但是有時(shí)候確實(shí)需要整個(gè)頁面刷新時(shí),它也不刷新了,需要手動(dòng)F5刷新。經(jīng)過嘗試各種辦法仍沒法解決。不知道有沒有人遇到過類似的問題?項(xiàng)目是基于vuejs + element-ui的。我上傳了完整代碼在github上: https://github.com/hzsrc/vue-...煩請各路高手們幫忙看下~
2 回答

慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
vue-loader升級(jí)了嗎?熱加載機(jī)制是vue-loader實(shí)現(xiàn)的

慕的地8271018
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
最近將項(xiàng)目的引用組件全部升了一遍級(jí),沒有再出現(xiàn)這個(gè)問題了。謝謝!
添加回答
舉報(bào)
0/150
提交
取消