如何优化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中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
vue打开其他项目页面并传入数据详解
Nov 25 Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
Vite和Vue CLI的优劣
Jan 30 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 Vue.js
vue实现同时设置多个倒计时
May 20 Vue.js
Vue2.0搭建脚手架
Mar 13 Vue.js
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 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
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
常用的HTML5列表标签
2017/06/20 HTML / CSS
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
《海伦?凯勒》教学反思
2014/04/17 职场文书
经典演讲稿汇总
2014/05/19 职场文书
教师个人年度总结
2015/02/11 职场文书