记一次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 相关文章推荐
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
Jan 19 Javascript
js检测浏览器版本、核心、是否移动端示例
Apr 24 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
Aug 15 Javascript
jQuery大于号(>)选择器的作用解释
Jan 13 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
Jan 27 Javascript
DWR中各种java方法的调用
May 04 Javascript
jquery获取easyui日期控件的值实现方法
Nov 09 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
Aug 22 Javascript
Vue中v-for的数据分组实例
Mar 07 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
Apr 25 Javascript
Vue+Vuex实现自动登录的知识点详解
Mar 04 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中使用Select 查询语句的实例
2014/02/19 PHP
php多重接口的实现方法
2015/06/20 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PDO::prepare讲解
2019/01/29 PHP
php xhprof使用实例详解
2019/04/15 PHP
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
2019/08/16 Javascript
Python Paramiko模块的安装与使用详解
2016/11/18 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
Python grpc超时机制代码示例
2020/09/14 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
预备党员思想汇报范文
2014/01/11 职场文书
医院总经理岗位职责
2014/02/04 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
个人存款证明书
2014/10/18 职场文书
西双版纳导游词
2015/02/03 职场文书
入党团支部推荐意见
2015/06/02 职场文书
2016年寒假家长评语
2015/10/10 职场文书
MySQL 四种连接和多表查询详解
2021/07/16 MySQL