记一次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 相关文章推荐
JSONObject使用方法详解
Dec 17 Javascript
JS中多步骤多分步的StepJump组件实例详解
Apr 01 Javascript
JS实现根据文件字节数返回文件大小的方法
Aug 02 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
微信小程序 欢迎界面开发的实例详解
Nov 30 Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 Javascript
详解Angular的数据显示优化处理
Dec 26 Javascript
vue中计算属性(computed)、methods和watched之间的区别
Jul 27 Javascript
vue2中使用less简易教程
Mar 27 Javascript
新手入门带你学习JavaScript引擎运行原理
Jun 24 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
Jan 19 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
Mar 14 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 日期加减的类,很不错
2009/10/10 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
laravel学习教程之关联模型
2016/07/30 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
PHP fclose函数用法总结
2019/02/15 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
knockoutjs模板实现树形结构列表
2017/07/31 Javascript
js中this对象用法分析
2018/01/05 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中的异常处理学习笔记
2015/01/28 Python
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
python中单下划线_的常见用法总结
2018/07/10 Python
python 创建一维的0向量实例
2019/12/02 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
教师研修随笔感言
2014/01/23 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
元宵节晚会主持词
2015/07/01 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android