记一次vue-webpack项目优化实践详解


Posted in Javascript onFebruary 17, 2019

项目现状

项目是一个数据监测平台,引入了ehcart和three.js 负责项目的数据可视化;打包后,体积高达2.1M,这个体积相比于我的项目规模来说就显得稍有笨重了

使用webpack-bundle-analyzer分析了一下各个文件所占用的比例:

记一次vue-webpack项目优化实践详解

整个项目文件分布大体清晰了,现在开始优化走起!

优化思路

根据 wba的显示,第三方插件是大部头,包括three.js echart组件elementUI组件
three.js优化空间不大,主要关注另外两个上面。

echarts

根据我的项目需求,echart主要用到的是linechart,其他图表不需要。而在开发过程中,我把整个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

记一次vue-webpack项目优化实践详解

记一次vue-webpack项目优化实践详解

elementUI

同理echart,elementUI同样按需求导入,替换之前的整体引入。
elementUI按需引入需要安装 babel-plugin-component包,在babelrc文件中进行如下修改:

"plugins": [
    ...
    ["component",
    {
     "libraryName": "element-ui",
     "styleLibraryName": "theme-chalk"
    }]
   ]

优化后:

记一次vue-webpack项目优化实践详解

经过对第三方插件的优化,打包后的文件缩小了近30%。

记一次vue-webpack项目优化实践详解

目前为止,项目打包后的大部头就是three.js,这个目前的优化空间较小。
而对echart改造给打包体积上带来的收益还是很明显的。

后记

这次的优化比较简单,主要是通过对自己项目的优化,熟悉webpack-bundle-analyzer的操作和使用这个插件的来优化webpack打包文件的方法和思路;算是简单的练手记录一下吧。当然,从整体优化的大维度上来说优化的点还有很多,这个文章继续更新下去。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JS实现的一个include函数
Jul 21 Javascript
jQuery 技巧小结
Apr 02 Javascript
Jquery拖拽并简单保存的实现代码
Nov 28 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 Javascript
javascript中利用柯里化函数实现bind方法
Apr 29 Javascript
Web安全测试之XSS实例讲解
Aug 15 Javascript
React Native 使用Fetch发送网络请求的示例代码
Dec 02 Javascript
React中常见的动画实现的几种方式
Jan 10 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
Mar 09 Javascript
详解javascript中的babel到底是什么
Jun 21 Javascript
JavaScript获取页面元素的常用方法详解
Sep 28 Javascript
微信小程序开发之转发分享功能
Oct 22 Javascript
Vuepress 搭建带评论功能的静态博客的实现
Feb 17 #Javascript
详解javascript replace高级用法
Feb 17 #Javascript
Nuxt.js 数据双向绑定的实现
Feb 17 #Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
Feb 17 #Javascript
JavaScript遍历DOM元素的常见方式示例
Feb 16 #Javascript
原生JS实现逼真的图片3D旋转效果详解
Feb 16 #Javascript
JS实现简单的抽奖转盘效果示例
Feb 16 #Javascript
You might like
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
Python决策树分类算法学习
2017/12/22 Python
django中模板的html自动转意方法
2018/05/27 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
Linux常见面试题
2016/10/04 面试题
为什么需要版本控制?
2013/08/08 面试题
机械设计及其自动化求职推荐信
2014/02/17 职场文书
《乡愁》教学反思
2014/02/18 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
新郎接新娘保证书
2015/05/08 职场文书
企业战略合作意向书
2015/05/08 职场文书
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android