摘要:優(yōu)化空間不大主要關(guān)注另外兩個上面。目前為止,項目打包后的大部頭就是,這個目前的優(yōu)化空間較小。當然,從整體優(yōu)化的大維度上來說優(yōu)化的點還有很多,這個文章繼續(xù)更新下去。
項目現(xiàn)狀
項目是一個數(shù)據(jù)監(jiān)測平臺,引入了ehcart和three.js 負責項目的數(shù)據(jù)可視化;打包后,體積高達2.1M,這個體積相比于我的項目規(guī)模來說就顯得稍有笨重了
使用webpack-bundle-analyzer分析了一下各個文件所占用的比例:
整個項目文件分布大體清晰了,現(xiàn)在開始優(yōu)化走起!
優(yōu)化思路根據(jù) wba的顯示,第三方插件是大部頭,包括three.js echart組件和elementUI組件。
three.js優(yōu)化空間不大,主要關(guān)注另外兩個上面。
根據(jù)我的項目需求,echart主要用到的是linechart,其他圖表不需要。而在開發(fā)過程中,我把整個echart都引用進來,其實是很沒有必要的。
ehcart整體引用方式
import echarts from ("echarts") vue.prototype.$echarts = echarts
更改為:
import echarts from "echarts/lib/echarts.js" import "echarts/lib/chart/line" import "echarts/lib/component/tooltip" import "echarts/lib/component/title" import "echarts/lib/component/legend" import "echarts/lib/component/legendScroll" import "echarts/lib/component/dataZoom" Vue.prototype.$echarts = echartselementUI
同理echart,elementUI同樣按需求導(dǎo)入,替換之前的整體引入。
elementUI按需引入需要安裝 babel-plugin-component包,在babelrc文件中進行如下修改:
"plugins": [ ... ["component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" }] ]
優(yōu)化后:
經(jīng)過對第三方插件的優(yōu)化,打包后的文件縮小了近30%。
目前為止,項目打包后的大部頭就是three.js,這個目前的優(yōu)化空間較小。
而對echart改造給打包體積上帶來的收益還是很明顯的。
項目初期,我們往往在在首次加載的時候?qū)⑺械穆酚扇考虞d,導(dǎo)致webpack將所有的模塊組件打包在一起,造成vendor文件過大;現(xiàn)在使用路由懶加載,方式如下:
const loadPage = (page) => // vue-loader version 13 import (`@/templates/${page}`).then(m => m.default) const routers =[ { path: "/", redirect:"/index", component:loadPage("console") }]
如果你的vue-loader版本是13.X需要使用上面的引用方法
12版本以下:
import (`@/templates/${page}`)
懶加載后,打出來的包整體大小還是1.5M,而vendor.js體積已經(jīng)比最開始減少一半了。
因為組件分離打包,所以在某一個組件里引用的three這個包也和總包分離了;現(xiàn)在用webpack-bundle-analyzer分析出來的圖已經(jīng)很好看了。
這次的優(yōu)化比較簡單,主要是通過對自己項目的優(yōu)化,熟悉webpack-bundle-analyzer的操作和使用這個插件的來優(yōu)化webpack打包文件的方法和思路;算是簡單的練手記錄一下吧。當然,從整體優(yōu)化的大維度上來說優(yōu)化的點還有很多,這個文章繼續(xù)更新下去。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101711.html
摘要:寫在最前本次分享一下在作者上一次失利即拿到畢業(yè)證第二天突然收到阿里社招面試通知失敗之后,通過分析自己的定位與實際情況,做出的未來一到兩年的規(guī)劃。在博客有一定曝光度的積累中,陸續(xù)收到了一些面試邀請,基本上是阿里的但是我知道我菜。。 寫在最前 本次分享一下在作者上一次失利即拿到畢業(yè)證第二天突然收到阿里社招面試通知失敗之后,通過分析自己的定位與實際情況,做出的未來一到兩年的規(guī)劃。以及本次社招...
摘要:然后類似一樣我的命名是可以在頁面的任何地方使用,如果你對具體的實現(xiàn)方法有興趣,歡迎點擊本文結(jié)尾的鏈接,去我的倉庫上查看。 前言 最近收到一個這樣的需求,要求做一個基于 vue 和 element-ui 的通用后臺框架頁,具體要求如下: 要求通用性高,需要在后期四十多個子項目中使用,所以大部分地方都做成可配置的. 要求做成腳手架的形式.可以 npm 安裝 要求實現(xiàn)多頁簽,并且可以通過瀏...
摘要:然后類似一樣我的命名是可以在頁面的任何地方使用,如果你對具體的實現(xiàn)方法有興趣,歡迎點擊本文結(jié)尾的鏈接,去我的倉庫上查看。 前言 最近收到一個這樣的需求,要求做一個基于 vue 和 element-ui 的通用后臺框架頁,具體要求如下: 要求通用性高,需要在后期四十多個子項目中使用,所以大部分地方都做成可配置的. 要求做成腳手架的形式.可以 npm 安裝 要求實現(xiàn)多頁簽,并且可以通過瀏...
摘要:手頭做的項目開發(fā)得差不多了,而打包配置是一開始粗略配置的,不大的項目打包出來得,所以現(xiàn)在必須進行優(yōu)化。用于生產(chǎn)環(huán)境的打包,設(shè)置其為后,這些庫會提供最小體積的文件。這種情況打包后的體積要更小一些。最后打包結(jié)果的體積開銷主要就是以上幾項。 手頭做的項目開發(fā)得差不多了,而打包配置是一開始粗略配置的,不大的項目打包出來得6MB+,所以現(xiàn)在必須進行優(yōu)化。 打包結(jié)果分析 執(zhí)行命令 webpack ...
摘要:背景最近接到一個任務(wù)是幫忙優(yōu)化的體積,項目是用開發(fā),多入口。這就涉及到兩次打,那這兩次打的如何打通呢的方式配合使用。通過可以將掛載到已經(jīng)存在的某個變量上。通過其它一些變量的方式暴露出去。不同的配置可以將你的庫打成一個庫,庫甚至是一個庫。 背景 最近接到一個任務(wù)是幫忙優(yōu)化jsbundle的體積,項目是用ts開發(fā),多入口。在分析之后發(fā)現(xiàn)每個bundle都打了同一份代碼(這份代碼是其它組提供...
閱讀 454·2024-11-07 18:25
閱讀 130762·2024-02-01 10:43
閱讀 943·2024-01-31 14:58
閱讀 904·2024-01-31 14:54
閱讀 83000·2024-01-29 17:11
閱讀 3263·2024-01-25 14:55
閱讀 2056·2023-06-02 13:36
閱讀 3166·2023-05-23 10:26