记一次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或css实现滚动广告的几种方案
Jan 28 Javascript
javascript判断iphone/android手机横竖屏模式的函数
Dec 20 Javascript
jquery和javascript的区别(常用方法比较)
Jul 04 Javascript
js实现局部页面打印预览原理及示例代码
Jul 03 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
Apr 15 Javascript
jquery验证手机号是否正确实例讲解
Nov 17 Javascript
详解用vue.js和laravel实现微信支付
Jun 23 Javascript
使用Bootrap和Vue实现仿百度搜索功能
Oct 26 Javascript
vue项目base64字符串转图片的实现代码
Jul 13 Javascript
elementUI select组件默认选中效果实现的方法
Mar 25 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 Javascript
原生JS运动实现轮播图
Jan 02 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
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
php精度计算的问题解析
2019/06/21 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
初探jquery——表单应用范例
2007/02/20 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
财务会计应届生求职信
2013/11/24 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
博士论文答辩开场白
2015/06/01 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
Java实现简易的分词器功能
2021/06/15 Java/Android
JavaScript实例 ODO List分析
2022/01/22 Javascript
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js