webpack3升級到webpack4遇到問題總結

最近因爲項目須要,須要對已有的兩個vue項目進行webpack3升級到webpack4,此處記錄一下整個升級過程的幾個重要步驟,以及遇到的問題和解決方案。css

一、更新webpack以及相關聯插件,webpack4新增插件webpack-clihtml

npm i -D webpack webpack-cli webpack-dev-server webpack-merge

二、運行npm run dev,報錯:Error: webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks instead.vue

clipboard.png

緣由:webpack.optimize.CommonsChunkPlugin 已廢棄,修改成webpack.optimize.SplitChunksPluginwebpack

三、運行報錯:Error: Plugin could not be registered at 'html-webpack-plugin-before-html-processing'. Hook was not found.
clipboard.pnggit

緣由:webpack升級,html-webpack-plugin未匹配
解決方案:升級html-webpack-plugin插件
升級插件到 html-webpack-plugin: 「^3.2.0」版本,再次運行,報錯
clipboard.png
緣由:項目中自定義因爲須要,須要對每個打包好的html模版都插入一段js,因此基於html-webpack-plugin自定義了一段插件代碼,可是該代碼須要根據webpack4從新處理一下,參考官網:https://github.com/jantimon/h...
解決:
第一步:升級插件 npm i -D html-webpack-plugin@next;
第二部修改自定義代碼部分,如圖:
clipboard.pnggithub

四、運行報錯:Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint insteadweb

clipboard.png
緣由: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可能沒用,最好更新成mini-css-extract-plugin,具體可看第6步npm

五、報錯:TypeError: Cannot read property 'vue' of undefined瀏覽器

clipboard.png

緣由:更新webpack,未更新vue-loader
解決:npm i -D vue-loader
注意:webpack4須要在配置中加入插件的引用纔會生效webpack-dev-server

const VueLoaderPlugin = require('vue-loader/lib/plugin’);
//配置中加入
plugins: [
    new VueLoaderPlugin()
],

六、報錯
clipboard.png

切換爲mini-css-extract-plugin

clipboard.png

七、視狀況更新

"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",

八、刪除

clipboard.png
在配置中加入

clipboard.png

九、BaseClient.js?e917:12 Uncaught TypeError: Cannot assign to read only property 'exports' of object ‘#
npm run dev不報錯,可是在瀏覽器打開,控制檯報錯

clipboard.png
緣由,webpack4以後,不容許混用 exports和import
解決: 修改include部分爲下邊這樣

clipboard.png

相關文章
相關標籤/搜索