记一次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 相关文章推荐
图片在浏览器中底部对齐 解决方法之一
Nov 30 Javascript
jquery $(this).attr $(this).val方法使用介绍
Oct 08 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
Mar 28 Javascript
学习Javascript面向对象编程之封装
Feb 23 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
Jan 23 Javascript
拖动时防止选中
Feb 03 Javascript
微信小程序三级联动地址选择器的实例代码
Jul 12 Javascript
微信小程序之多文件下载的简单封装示例
Jan 29 Javascript
vue如何实现自定义底部菜单栏
Jul 01 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
Jul 31 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
Aug 16 Javascript
openlayers4实现点动态扩散
Aug 17 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
附件名前加网站名
2008/03/23 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
python3.5仿微软计算器程序
2020/03/30 Python
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
python中abs&map&reduce简介
2018/02/20 Python
Python列表与元组的异同详解
2019/07/02 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
2014年大学生四年规划书范文
2014/04/03 职场文书
本科生就业推荐信
2014/05/19 职场文书
2015年推普周活动总结
2015/03/27 职场文书
公司放假通知怎么写
2015/04/15 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
小学大队委竞选口号
2015/12/25 职场文书