webpack3升級(jí)到webpack4遇到問(wèn)題總結(jié)
最近由于項(xiàng)目需要,需要對(duì)已有的兩個(gè)vue項(xiàng)目進(jìn)行webpack3升級(jí)到webpack4,此處記錄一下整個(gè)升級(jí)過(guò)程的幾個(gè)重要步驟,以及遇到的問(wèn)題和解決方案。
1、更新webpack以及相關(guān)聯(lián)插件,webpack4新增插件webpack-cli
npm i -D webpack webpack-cli webpack-dev-server webpack-merge
2、運(yùn)行npm run dev,報(bào)錯(cuò):Error: webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks instead.
原因:webpack.optimize.CommonsChunkPlugin 已廢棄,修改為webpack.optimize.SplitChunksPlugin
3、運(yùn)行報(bào)錯(cuò):Error: Plugin could not be registered at 'html-webpack-plugin-before-html-processing'. Hook was not found.
原因:webpack升級(jí),html-webpack-plugin未匹配
解決方案:升級(jí)html-webpack-plugin插件
升級(jí)插件到 html-webpack-plugin: “^3.2.0”版本,再次運(yùn)行,報(bào)錯(cuò)
原因:項(xiàng)目中自定義由于需要,需要對(duì)每一個(gè)打包好的html模版都插入一段js,所以基于html-webpack-plugin自定義了一段插件代碼,但是該代碼需要根據(jù)webpack4重新處理一下,參考官網(wǎng):https://github.com/jantimon/h...
解決:
第一步:升級(jí)插件 npm i -D html-webpack-plugin@next;
第二部修改自定義代碼部分,如圖:
4、運(yùn)行報(bào)錯(cuò):Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead
原因:Since webpack v4 the extract-text-webpack-plugin should not be used for css. Use mini-css-extract-plugin instead.
解決: npm install extract-text-webpack-plugin@next;
只更新extract-text-webpack-plugin可能沒(méi)用,最好更新成mini-css-extract-plugin,具體可看第6步
5、報(bào)錯(cuò):TypeError: Cannot read property 'vue' of undefined
原因:更新webpack,未更新vue-loader
解決:npm i -D vue-loader
注意:webpack4需要在配置中加入插件的引用才會(huì)生效
const VueLoaderPlugin = require('vue-loader/lib/plugin'); //配置中加入 plugins: [ new VueLoaderPlugin() ],
6、報(bào)錯(cuò)
切換為mini-css-extract-plugin
7、視情況更新
"vue-style-loader": "^4.1.2", "vue-template-compiler": "^2.6.10”, "html-webpack-exclude-assets-plugin": "0.0.7", "html-webpack-inline-chunk-plugin": "^1.1.1",
8、刪除
在配置中加入
9、BaseClient.js?e917:12 Uncaught TypeError: Cannot assign to read only property 'exports' of object ‘#
npm run dev不報(bào)錯(cuò),但是在瀏覽器打開(kāi),控制臺(tái)報(bào)錯(cuò)
原因,webpack4之后,不允許混用 exports和import
解決: 修改include部分為下邊這樣
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實(shí)現(xiàn)獲取dom中class的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)獲取dom中class的方法,涉及javascript操作dom節(jié)點(diǎn)的使用技巧,需要的朋友可以參考下2015-02-02JavaScript常用數(shù)學(xué)函數(shù)用法示例
這篇文章主要介紹了JavaScript常用數(shù)學(xué)函數(shù)用法,結(jié)合實(shí)例形式分析了JavaScript常見(jiàn)的對(duì)數(shù)、平方、絕對(duì)值、正弦、四舍五入等相關(guān)數(shù)學(xué)函數(shù)使用技巧,需要的朋友可以參考下2018-05-05ant design中實(shí)現(xiàn)table的表格行的拖拽
這篇文章主要介紹了ant design中實(shí)現(xiàn)table的表格行的拖拽,文章圍繞table表格行拖拽實(shí)現(xiàn)的相關(guān)資料展開(kāi)詳細(xì)的代碼內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-03-03詳解webpack 入門(mén)總結(jié)和實(shí)踐(按需異步加載,css單獨(dú)打包,生成多個(gè)入口文件)
本篇文章主要介紹了webpack 入門(mén)總結(jié)和實(shí)踐(按需異步加載,css單獨(dú)打包,生成多個(gè)入口文件) ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06js實(shí)現(xiàn)股票實(shí)時(shí)刷新數(shù)據(jù)案例
下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)股票實(shí)時(shí)刷新數(shù)據(jù)案例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05JS實(shí)現(xiàn)標(biāo)簽頁(yè)切換效果
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)標(biāo)簽頁(yè)切換效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05用js閉包的方法實(shí)現(xiàn)多點(diǎn)標(biāo)注冒泡示例
這篇文章主要介紹了用js閉包的方法實(shí)現(xiàn)多點(diǎn)標(biāo)注冒泡,需要的朋友可以參考下2014-05-05JS數(shù)字抽獎(jiǎng)游戲?qū)崿F(xiàn)方法
這篇文章主要介紹了JS數(shù)字抽獎(jiǎng)游戲?qū)崿F(xiàn)方法,可實(shí)現(xiàn)按下回車(chē)鍵出現(xiàn)隨機(jī)數(shù)字切換的效果,涉及時(shí)間與隨機(jī)數(shù)的相關(guān)操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05Js實(shí)現(xiàn)滾動(dòng)變色的文字效果
滾動(dòng)變色的文字js特效,可看到文字在交替變色顯示,以吸引人的注意,效果真心不錯(cuò)哦,需要的朋友可以參考下2014-06-06