如何优化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 相关文章推荐
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
Vue组件简易模拟实现购物车
Dec 21 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
在vue项目中封装echarts的步骤
Dec 25 Vue.js
Vue+Bootstrap实现简易学生管理系统
Feb 09 Vue.js
解读Vue组件注册方式
May 15 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
vue实现列表垂直无缝滚动
Apr 08 Vue.js
Vue OpenLayer 为地图绘制风场效果
Apr 24 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设计模式之单例模式实例分析
2015/02/25 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
Js四则运算函数代码
2012/07/21 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
python获取标准北京时间的方法
2015/03/24 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
Python地图绘制实操详解
2019/03/04 Python
详解python运行三种方式
2019/05/13 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
公务员培训自我鉴定
2014/02/01 职场文书
安全保证书范文
2014/04/29 职场文书
员工保密承诺书
2014/05/28 职场文书
同学毕业留言寄语
2015/02/27 职场文书
小学班主任教育随笔
2015/08/15 职场文书
员工升职自我评价
2019/03/26 职场文书