记一次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 相关文章推荐
一个javascript图片阅览组件
Nov 09 Javascript
getComputedStyle与currentStyle获取样式(style/class)
Mar 19 Javascript
JS给超链接加确认对话框的方法
Feb 24 Javascript
详解JavaScript UTC时间转换方法
Jan 07 Javascript
jQuery日历插件datepicker用法详解
Mar 03 Javascript
关于js函数解释(包括内嵌,对象等)
Nov 20 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
Dec 28 Javascript
js鼠标移动时禁止选中文字
Feb 19 Javascript
在Vue中使用highCharts绘制3d饼图的方法
Feb 08 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
Nov 05 Javascript
微信小程序实现锚点功能
Nov 20 Javascript
原生js实现密码强度验证功能
Mar 18 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
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
javascript Deferred和递归次数限制实例
2014/10/21 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
js实现文字截断功能
2016/09/14 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
Scrapy框架使用的基本知识
2018/10/21 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
Python内置函数locals和globals对比
2020/04/28 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
自荐信怎么写好
2013/11/11 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
详解Python中的进程和线程
2021/06/23 Python
python高温预警数据获取实例
2022/07/23 Python
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server