webpack 1.x升級(jí)過(guò)程中的踩坑總結(jié)大全
前言
大家應(yīng)該都知道,Webpack 是一個(gè)前端資源加載/打包工具。它將根據(jù)模塊的依賴關(guān)系進(jìn)行靜態(tài)分析,然后將這些模塊按照指定的規(guī)則生成對(duì)應(yīng)的靜態(tài)資源。因?yàn)樽罱趯?duì)博客做SSR,無(wú)奈vue ssr demo或例子都是基于webpack2的。博主在webpack1.x上折騰了許久,vue-ssr-server-bundle.json文件生成仍然還是遙遙無(wú)期。最后還是乖乖地開(kāi)始了webpack升級(jí)之旅。
本文主要記錄升級(jí)過(guò)程中遇到的一些坑和解決辦法,可能有些遺漏了,能記多少記多少吧。話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
錯(cuò)誤:Error: Chunk.entry was removed. Use hasRuntime()
解決辦法:升級(jí)extract-text-webpack-plugin ("extract-text-webpack-plugin": "^2.1.0",)
錯(cuò)誤:Error: Breaking change: extract now only takes a single argument.
// 錯(cuò)誤提示 Error: Breaking change: extract now only takes a single argument. Either an options object *or* the loader(s). Example: if your old code looked like this: ExtractTextPlugin.extract('style-loader', 'css-loader') You would change it to: ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' })
原因是webpack2對(duì)loader的配置做了一些調(diào)整,修改 ExtractTextPlugin配置即可:
{ test: /\.less$/, use: ExtractTextPlugin.extract({ fallback: 'style-loader', use: ['css-loader', 'less-loader'] }) },
htmlWebpackPlugin生成的html,沒(méi)有引入css, app.js
修改配置,chunks屬性使用files包裹
{ filename: pageName + '.html', template: __dirname + '/src/' + pageName + '.html', chunks: pageConf.chunks, inject: true };
{ filename: pageName + '.html', template: __dirname + '/src/' + pageName + '.html', files: { chunks: pageConf.chunks, }, inject: true };
eslint不能識(shí)別es6語(yǔ)法
✘ http://eslint.org/docs/rules/ Parsing error: The keyword 'import' is reserved src\entry.client.js:7:1 import { createApp } from './app' ^
解決辦法:修改eslint配置,增加
"parser": "babel-eslint",
錯(cuò)誤: Module build failed: BrowserslistError: Unknown version 57 of and_chr
npm 包過(guò)期,刪除node_modules,從新安裝依賴即可
webpack dist打包后,不生成公共css文件
vee-loader配置不對(duì),加上配置 extractCSS: true
{ test: /\.vue$/, loader: 'vue-loader', options: { extractCSS: isProd, preserveWhitespace: false, postcss: [ require('autoprefixer')({ browsers: ['last 3 versions'] }) ] } },
小結(jié)
升級(jí)過(guò)程總體上還算順利,vue-ssr-server-bundle.json也生成了,不過(guò)這僅僅是ssr的開(kāi)始,一大堆問(wèn)題等著解決。 如果不熟悉webpack2可以先花點(diǎn)時(shí)間看下官網(wǎng)介紹,英文不好的可以看翻譯版。 整個(gè)升級(jí)過(guò)程總得來(lái)說(shuō),就是很多l(xiāng)oader得升級(jí),另一個(gè)要注意的就是loader的配置了,其它似乎沒(méi)什么特別的地方。
總結(jié)
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
JS控制阿拉伯?dāng)?shù)字轉(zhuǎn)為中文大寫(xiě)示例代碼
阿拉伯?dāng)?shù)字如何轉(zhuǎn)為中文大寫(xiě)這個(gè)實(shí)現(xiàn)的方法有很多,在本文將為大家介紹下js中時(shí)如何實(shí)現(xiàn)的,感興趣的朋友可以參考下2013-09-09在layui tab控件中載入外部html頁(yè)面的方法
今天小編就為大家分享一篇在layui tab控件中載入外部html頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09javascript dom 操作詳解 js加強(qiáng)
javascript dom 操作詳解 js加強(qiáng)操作實(shí)現(xiàn)代碼。2009-07-07HTML Table 空白單元格補(bǔ)全的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇HTML Table 空白單元格補(bǔ)全的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10textContent在Firefox下與innerText等效的屬性
textContent在Firefox下與innerText等效的屬性...2007-05-05javascript實(shí)現(xiàn)移動(dòng)端觸屏拖拽功能
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)移動(dòng)端觸屏拖拽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07如何在面試中手寫(xiě)出javascript節(jié)流和防抖函數(shù)
這篇文章主要介紹了如何在面試中手寫(xiě)出javascript節(jié)流和防抖函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10JS實(shí)現(xiàn)瀏覽器打印、打印預(yù)覽示例
本篇文章主要介紹了JS實(shí)現(xiàn)瀏覽器打印、打印預(yù)覽示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02Apply an AutoFormat to an Excel Spreadsheet
Apply an AutoFormat to an Excel Spreadsheet...2007-06-06