如何优化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-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
vue 页面跳转的实现方式
Jan 12 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
Vue实现跑马灯样式文字横向滚动
Nov 23 Vue.js
VUE中的v-if与v-show区别介绍
Mar 13 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 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数据类型判断函数有哪些
2013/09/23 PHP
分享一段php获取linux服务器状态的代码
2014/05/27 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
php实现两个数组相加的方法
2015/02/17 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
python从sqlite读取并显示数据的方法
2015/05/08 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
python进程和线程用法知识点总结
2019/05/28 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
2019年.net常见面试问题
2012/02/12 面试题
党支部书记岗位责任制
2014/02/11 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
音乐会主持人开场白
2015/05/28 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS