记一次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对URL字符串进行编码/解码分析
Oct 25 Javascript
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
Sep 15 Javascript
如何减少浏览器的reflow和repaint
Feb 26 Javascript
Node.js事件驱动
Jun 18 Javascript
可以浮动某个物体的jquery控件用法实例
Jul 24 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
Mar 10 Javascript
JavaScript记录光标在编辑器中位置的实现方法
Apr 22 Javascript
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
javaScript中封装的各种写法示例(推荐)
Jul 03 Javascript
JS实现浏览上传文件的代码
Aug 23 Javascript
Angular实现预加载延迟模块的示例
Oct 12 Javascript
webpack4 处理CSS的方法示例
Sep 03 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新手上路(八)
2006/10/09 PHP
PHP使用数组实现队列
2012/02/05 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
用javascript实现点击链接弹出"图片另存为"而不是直接打开
2007/08/15 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
微信小程序select下拉框实现效果
2019/05/15 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
Python ZipFile模块详解
2013/11/01 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
Python 判断奇数偶数的方法
2018/12/20 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
如何给Python代码进行加密
2020/01/10 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
python 简单的调用有道翻译
2020/11/25 Python
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
轻化专业学生实习自我鉴定
2013/09/20 职场文书
英文自荐信格式
2013/11/28 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
入党现实表现材料
2014/12/23 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
民政局未婚证明
2015/06/15 职场文书
Redis实现短信验证码登录的示例代码
2022/06/14 Redis