壓縮Vue.js打包后的體積方法總結(jié)(Vue.js打包后體積過大問題)
問題
由于這次項(xiàng)目是在初學(xué) Vue 之后的第一個(gè)正式項(xiàng)目,沒有考慮到類似 路由懶加載、 按需加載的問題 ,所以呢,也算是沒經(jīng)驗(yàn)。
到了這些天,項(xiàng)目寫得差不多了,準(zhǔn)備放到服務(wù)器測試,才發(fā)現(xiàn)這個(gè)問題。
優(yōu)化前:
app.js 2.3MB vendor.js 2.4MB vendor.css 612kB app.js.map 9.13MB vendor.js.map 16.21MB //不一一列舉....
優(yōu)化
接下來看看優(yōu)化方法。
優(yōu)化步驟1: 不生成.map文件
在 webpack.prod.cong.js 文件下,修改配置項(xiàng) sourceMap 設(shè)置為 false 或者刪除:
new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false }, // sourceMap: true //將sourceMap關(guān)閉就不會(huì)打包出.map文件 }),
這樣的話,開發(fā)環(huán)境就不會(huì)生成 .map 文件。
優(yōu)化步驟2: 按需加載
對于項(xiàng)目中,一些 通用 或者 不是特別差異 的組件可以使用按需加載,在需要的時(shí)候加載即可,并且會(huì)自動(dòng)緩存。
這時(shí)候需要在 router 文件夾下的 index.js 文件修改路由配置中的 組件引入 方式:
Vue.use(Router) export default new Router({ routes:[{ path:"/", component:function(resolve){ require(["./../components/Index"],resolve) } }] })
這樣的話,這個(gè)組件就會(huì)在你需要加載的時(shí)候才會(huì)加載。
優(yōu)化步驟3: VueRouter的懶加載
在 vue-router 的模塊引入,將默認(rèn)的 import .. from .. 引入方式,修改為一步。如下:
const Foo = () => import("/Foo.vue) ```
然后在 `配置路由` 中,和之前一樣使用:
Vue.use(Router) export default new Router({ routes:[{ path:”/“, component:Foo }] })
優(yōu)化步驟4:將大的第三方包通過<script>標(biāo)簽引入
一般將類似 `echarts` 這種比較大的第三方依賴包,通過 `<script></script>` 標(biāo)簽來引入的話,會(huì)很大程度縮小打包的大小。
但是需要在 `vue` 配置文件這樣配置:
`webpack.base.config.js` 中添加 `不打包` 的包的名稱,這樣打包的時(shí)候才不會(huì)把這些包一起打包進(jìn)去:
module.exports = { entry:{...}, output:{...}, resolve:{...}, module:{...}, externals:{ "echarts":"echarts" //不打包的包名 } }
然后在 index.html 中用 <script></script> 標(biāo)簽引入依賴包的CDN或者其他地址。
優(yōu)化步驟5: 圖片壓縮
這個(gè)不用怎么說,有個(gè)地址很好用,推薦下:tinypng
優(yōu)化后
通過這幾步驟,優(yōu)化完成的每個(gè)文件都會(huì)縮小好多倍:
app.js 136.2kB vendor.js 213.2kB vendor.css 612kB //css 這個(gè)我還沒辦法 app.js.map 0MB vendor.js.map 0MB
更多關(guān)于VUE壓縮的方案大家可以看看下面的相關(guān)文章
- 詳解在vue-cli3.0中自定css、js和圖片的打包路徑
- 發(fā)布BlueShow v1.0 圖片瀏覽器(類似lightbox)blueshow.js 打包下載
- Js模塊打包exports require import的用法和區(qū)別
- vue.config.js打包優(yōu)化配置
- 手把手教你如何編譯打包video.js
- nuxt.js添加環(huán)境變量,區(qū)分項(xiàng)目打包環(huán)境操作
- vue 解決uglifyjs-webpack-plugin打包出現(xiàn)報(bào)錯(cuò)的問題
- 解決vue打包后vendor.js文件過大問題
- js實(shí)現(xiàn)多張圖片打包成zip
相關(guān)文章
Vue中"This dependency was not found"問題的解決方法
這篇文章主要介紹了Vue中"This dependency was not found"的問題的解決方法,需要的朋友可以參考下2018-06-06ant design vue datepicker日期選擇器中文化操作
這篇文章主要介紹了ant design vue datepicker日期選擇器中文化操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10mpvue中配置vuex并持久化到本地Storage圖文教程解析
這篇文章主要介紹了mpvue中配置vuex并持久化到本地Storage的教程詳解,# 配置vuex和在vue中相同,只是mpvue有一個(gè)坑,就是不能直接在new Vue的時(shí)候傳入store。本文分步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧2018-03-03vue項(xiàng)目打包后部署到服務(wù)器的詳細(xì)步驟
這篇文章主要介紹了vue項(xiàng)目打包后部署到服務(wù)器,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09vue如何調(diào)用攝像頭實(shí)現(xiàn)拍照上傳圖片、本地上傳圖片
這篇文章主要給大家介紹了關(guān)于vue如何調(diào)用攝像頭實(shí)現(xiàn)拍照上傳圖片、本地上傳圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-07-07Vue3+Vite+TS實(shí)現(xiàn)二次封裝element-plus業(yè)務(wù)組件sfasga
這篇文章主要介紹了在Vue3+Vite+TS的基礎(chǔ)上實(shí)現(xiàn)二次封裝element-plus業(yè)務(wù)組件sfasga,下面文章也將圍繞實(shí)現(xiàn)二次封裝element-plus業(yè)務(wù)組件sfasga的相關(guān)介紹展開相關(guān)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可惡意參考一下2021-12-12vue?LogicFlow更多配置選項(xiàng)示例詳解
這篇文章主要為大家介紹了vue?LogicFlow更多配置選項(xiàng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01