成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

記一次vue-webpack項目優(yōu)化實踐【更新】

ernest.wang / 1486人閱讀

摘要:優(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)注另外兩個上面。

echarts

根據(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 = echarts

elementUI

同理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

相關(guān)文章

  • 一次“失利后”經(jīng)過半年準備通過阿里社招的經(jīng)歷與感悟

    摘要:寫在最前本次分享一下在作者上一次失利即拿到畢業(yè)證第二天突然收到阿里社招面試通知失敗之后,通過分析自己的定位與實際情況,做出的未來一到兩年的規(guī)劃。在博客有一定曝光度的積累中,陸續(xù)收到了一些面試邀請,基本上是阿里的但是我知道我菜。。 寫在最前 本次分享一下在作者上一次失利即拿到畢業(yè)證第二天突然收到阿里社招面試通知失敗之后,通過分析自己的定位與實際情況,做出的未來一到兩年的規(guī)劃。以及本次社招...

    malakashi 評論0 收藏0
  • 一次基于vue的spa多頁簽實踐經(jīng)驗

    摘要:然后類似一樣我的命名是可以在頁面的任何地方使用,如果你對具體的實現(xiàn)方法有興趣,歡迎點擊本文結(jié)尾的鏈接,去我的倉庫上查看。 前言 最近收到一個這樣的需求,要求做一個基于 vue 和 element-ui 的通用后臺框架頁,具體要求如下: 要求通用性高,需要在后期四十多個子項目中使用,所以大部分地方都做成可配置的. 要求做成腳手架的形式.可以 npm 安裝 要求實現(xiàn)多頁簽,并且可以通過瀏...

    ispring 評論0 收藏0
  • 一次基于vue的spa多頁簽實踐經(jīng)驗

    摘要:然后類似一樣我的命名是可以在頁面的任何地方使用,如果你對具體的實現(xiàn)方法有興趣,歡迎點擊本文結(jié)尾的鏈接,去我的倉庫上查看。 前言 最近收到一個這樣的需求,要求做一個基于 vue 和 element-ui 的通用后臺框架頁,具體要求如下: 要求通用性高,需要在后期四十多個子項目中使用,所以大部分地方都做成可配置的. 要求做成腳手架的形式.可以 npm 安裝 要求實現(xiàn)多頁簽,并且可以通過瀏...

    張遷 評論0 收藏0
  • 一次 webpack 打包體積優(yōu)化

    摘要:手頭做的項目開發(fā)得差不多了,而打包配置是一開始粗略配置的,不大的項目打包出來得,所以現(xiàn)在必須進行優(yōu)化。用于生產(chǎn)環(huán)境的打包,設(shè)置其為后,這些庫會提供最小體積的文件。這種情況打包后的體積要更小一些。最后打包結(jié)果的體積開銷主要就是以上幾項。 手頭做的項目開發(fā)得差不多了,而打包配置是一開始粗略配置的,不大的項目打包出來得6MB+,所以現(xiàn)在必須進行優(yōu)化。 打包結(jié)果分析 執(zhí)行命令 webpack ...

    tomlingtm 評論0 收藏0
  • 【webpack】: 一次jsbundle體積優(yōu)化

    摘要:背景最近接到一個任務(wù)是幫忙優(yōu)化的體積,項目是用開發(fā),多入口。這就涉及到兩次打,那這兩次打的如何打通呢的方式配合使用。通過可以將掛載到已經(jīng)存在的某個變量上。通過其它一些變量的方式暴露出去。不同的配置可以將你的庫打成一個庫,庫甚至是一個庫。 背景 最近接到一個任務(wù)是幫忙優(yōu)化jsbundle的體積,項目是用ts開發(fā),多入口。在分析之后發(fā)現(xiàn)每個bundle都打了同一份代碼(這份代碼是其它組提供...

    Fundebug 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<