如何优化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基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 Vue.js
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
Vue中使用wangeditor富文本编辑的问题
Feb 07 Vue.js
vue路由实现登录拦截
Mar 24 Vue.js
深入理解Vue的数据响应式
May 15 Vue.js
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 Vue.js
vue 给数组添加新对象并赋值
Apr 20 Vue.js
VUE递归树形实现多级列表
Jul 15 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 cdata 处理(详细介绍)
2013/07/05 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
图片之间的切换
2006/06/26 Javascript
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
Python 模板引擎的注入问题分析
2017/01/01 Python
Scrapy的简单使用教程
2017/10/24 Python
Django中Forms的使用代码解析
2018/02/10 Python
详解python实现线程安全的单例模式
2018/03/05 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
Django进阶之CSRF的解决
2018/08/01 Python
django 将model转换为字典的方法示例
2018/10/16 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Python秒算24点实现及原理详解
2019/07/29 Python
Tensorflow 多线程设置方式
2020/02/06 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
Python如何定义一个函数
2015/09/01 面试题
四年的个人工作自我评价
2013/12/10 职场文书
1亿有多大教学反思
2014/05/01 职场文书