记一次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 相关文章推荐
解决FLASH需要点击激活的代码
Dec 20 Javascript
Javascript模块模式分析
May 16 Javascript
jquery插件之定时查询待处理任务数量
May 01 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
May 08 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
在node中使用jwt签发与验证token的方法
Apr 03 Javascript
vue axios封装及API统一管理的方法
Apr 18 Javascript
ES6的解构赋值实例详解
May 06 Javascript
封装Vue Element的table表格组件的示例详解
Aug 19 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 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正则走开
2008/03/15 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
PHP内置加密函数详解
2016/11/20 PHP
javascript 异常处理使用总结
2009/06/21 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
让Vue也可以使用Redux的方法
2018/05/23 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
python实现按行切分文本文件的方法
2016/04/18 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
关于Python解包知识点总结
2020/05/05 Python
python实现登录与注册系统
2020/11/30 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
几道PHP的面试题
2012/05/19 面试题
J2EE面试题集锦(附答案)
2013/08/16 面试题
个人求职简历中英文自我评价
2013/12/16 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
运动会1000米加油稿
2015/07/21 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js