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