如何优化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如何循环提取对象数组中的值
Nov 18 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
vue实现购物车的小练习
Dec 21 Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 Vue.js
Vue 修改网站图标的方法
Dec 31 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
详解template标签用法(含vue中的用法总结)
Jan 12 Vue.js
vue使用节流函数的踩坑实例指南
May 20 Vue.js
Vue CLI中模式与环境变量的深入详解
May 30 Vue.js
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 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 n个不重复的随机数生成代码
2009/06/23 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
JS的replace方法介绍
2012/10/20 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
基于JavaScript实现购物车功能
2017/02/07 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
2018/11/11 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
python select.select模块通信全过程解析
2017/09/20 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
如何用Python合并lmdb文件
2018/07/02 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
类和结构的区别
2012/08/15 面试题
项目建议书格式
2014/03/12 职场文书
协议书的格式
2014/04/23 职场文书
供应链金融服务方案
2014/05/25 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
离婚协议书怎么写
2015/01/26 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers