如何优化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中利用three.js实现全景图的完整示例
Dec 07 Vue.js
Vue实现简易购物车页面
Dec 30 Vue.js
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 Vue.js
vue.js watch经常失效的场景与解决方案
Jan 07 Vue.js
基于vue的video播放器的实现示例
Feb 19 Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
vue项目实现分页效果
Mar 24 Vue.js
如何让vue长列表快速加载
Mar 29 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
详解Vue的列表渲染
Nov 20 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
PHP判断图片格式的七种方法小结
2013/06/03 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
详解php中反射的应用
2016/03/15 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
javascript 写类方式之三
2009/07/05 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
OpenCV实现人脸识别
2017/04/07 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
2014年元旦促销活动方案
2014/02/22 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
员工年终考核评语
2014/12/31 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
2016公司年会主持词
2015/07/01 职场文书
mysql查询结果实现多列拼接查询
2022/04/03 MySQL