如何优化vue打包文件过大


Posted in Vue.js onApril 13, 2022

vue打包生成的js文件过大优化

1.组件按需加载

现在大多的ui库都是以组件的形式进行处理,所以只需导入需要模块的即可

2.去掉生成map文件

打包时会生成map文件,而map文件一般都比较大,可以取消生成map文件

(1)config/index.js找到productionSourceMap把true改为false

3.cdn引入

通过外部引入的方式引入这些UI组件库,从而减少打包文件过大的问题

(1)index.html

引入外部文件,并且加上<router-view> 

如何优化vue打包文件过大

(2)main.js

去掉在页面引入vue和vue-router

如何优化vue打包文件过大

4.路由懒加载

如何优化vue打包文件过大

5.代码压缩

config/index.js 找到 productionGzip 把 false 改为 true

注意:要先安装compression-webpack-plugin

npm install --save-dev compression-webpack-plugin

6.最后

优化前:

如何优化vue打包文件过大

优化后:

如何优化vue打包文件过大

项目打包之后js文件太大问题

问题描述

前端项目打包之后.js文件太大,导致项目第一次加载的时候太慢,查阅各种解决方案资料,汇总以下几点:

1.使用cdn引入不怎么改变的第三方库

类似于

<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>
<script src="https://cdn.bootcss.com/vue/2.5.15/vue.min.js"></script>

webpack.base.conf.js 添加:

      externals: {
         'vue': 'Vue',
         'vue-router': 'VueRouter',
         'element-ui': 'ELEMENT',
         'echarts': 'echarts',
         'axios': 'axios'
      },

2.使用vue的懒加载

官网地址[https://router.vuejs.org/zh/guide/advanced/lazy-loading.html]

但是官网有一句

如果您使用的是 Babel,你将需要添加 syntax-dynamic-import 插件,才能使 Babel 可以正确地解析语法。

这个插件依赖于6.x.babel 需要注意

3.服务器和前端配置开启压缩

服务器nginx配置添加:

  gzip on;
  gzip_static on;  --这个很重要 不加的话 访问加载的还是未压缩的文件

前端配置config/index.js:

 productionGzip: true,

然后再引入插件 compression-webpack-plugin

需要注意版本  "compression-webpack-plugin": "^1.1.12",

前面两种 文件大小并没有减少太多 使用第三种的时候减少的最多。

Vue.js 相关文章推荐
详解Vue的mixin策略
Nov 19 Vue.js
vue 插槽简介及使用示例
Nov 19 Vue.js
vue实现表格合并功能
Dec 01 Vue.js
vue中如何自定义右键菜单详解
Dec 08 Vue.js
vue+echarts实现中国地图流动效果(步骤详解)
Jan 27 Vue.js
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
vue-router懒加载的3种方式汇总
Feb 28 Vue.js
Vue2.x-使用防抖以及节流的示例
Mar 02 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
VUE解决跨域问题Access to XMLHttpRequest at
May 06 Vue.js
vue3不同环境下实现配置代理
May 25 Vue.js
使用vue判断当前环境是安卓还是IOS
Apr 12 #Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 #Vue.js
vue数据字典取键值项目的字典问题
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
vue选项卡切换的实现案例
分享一个vue实现的记事本功能案例
vue代码分块和懒加载非必要资源文件
Apr 11 #Vue.js
You might like
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
Python中常见的数据类型小结
2015/08/29 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
详解CSS3:overflow属性
2020/11/17 HTML / CSS
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
求职简历中的自我评价分享
2013/12/08 职场文书
党员承诺践诺书
2014/05/20 职场文书
学用政策心得体会
2014/09/10 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis