前端性能优化:Vue项目打包后app.xxx.js 和 chunk-vendors.xxx.js 文件太大,导致页面加载时间太长

问题场景,如下图,环境上的 app.js 和chunk-vendors.js 两个文件大小,高达3.4M 和 2M ,加载所耗费的时间也很长。

下面说一下如何解决:

1、首先需要安装插件 compression-webpack-plugin,我这里用的是6.1.1的版本

npm i compression-webpack-plugin@6.1.1

2、npm安装包成功后需要修改 vue.config.js 中的配置,这里只展示此次优化相关的部分

const CompressionWebpackPlugin = require("compression-webpack-plugin");chainWebpack: (config) => {config.when(process.env.NODE_ENV === "development", (config) => {config.devtool("source-map");});config.when(process.env.NODE_ENV === "production", (config) => {config.performance.set("hints", false);config.devtool("none");config.plugin("compression").use(CompressionWebpackPlugin, [{filename: "[path][base].gz[query]",algorithm: "gzip",test: /\.(js|css)$/,threshold: 8192,minRatio: 0.8,deleteOriginalAssets: false,},]);});},

3、 修改后,先本地 npm run build 打包,打包成功后,看下包里的js文件中是否包含 .gz 结尾的文件,如果包含就可以把包部署到相关环境上

4、(最重要)需要修改nginx的配置文件,nginx.conf  在http{}里打开gzip开关,并添加配置

http {#开启gzip压缩gzip on;#设置gzip压缩级别,2级是性价比最高的gzip_comp_level 2;#设置动态gzip压缩的文件类型gzip_types text/plain text/css text/javascript application/javascript;#http的协议版本gzip_http_version 1.0;#IE版本1-6不支持gzip压缩,关闭gzip_disable 'MSIE[1-6].';
}

5、修改nginx配置之后,需要重启nginx生效,然后去页面清空浏览器环缓存后查看,app.js 和chunk-vendors.js 两个文件变成了 884kB 和642 kB,大小和加载时间都有明显的下降

 如果帮助到你了,希望留下一个赞👍吧,那是我继续前进的动力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

情人节送什么礼给男朋友合适?适合送男友的礼物合集

情人节即将来临,作为贴心的女友,你是否已经开始为男友精心挑选礼物了呢?为了让这个特殊的日子充满温馨与甜蜜,选择一份既实用又充满心意的礼物是至关重要的,下面为大家推荐一些适合在情人节送给男友的好物,…

探索自然语言处理在改善搜索引擎、语音助手和机器翻译中的应用

文章目录 每日一句正能量前言文本分析语音识别机器翻译语义分析自然语言生成情感分析后记 每日一句正能量 努力学习,勤奋工作,让青春更加光彩。 前言 自然语言处理(NLP)是人工智能领域中与人类语言相关的重要研究方向&#xff0c…

搭建gitlab仓库

yum安装gitlab仓库 搭建gitlab仓库 配置yum源 vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] namegitlab-ce baseurlhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 gpgcheck0 Repo_gpgcheck0 Enabled1 Gpgkeyhttps://packages.gitlab.com/gpg.keysudo yum ins…

腾讯主导制定全球首个车载小程序国际标准,助力车载应用生态发展

2024年1月,国际电信联盟标准部门(ITU-T)正式发布了由腾讯主导制定的《F.749.8 In-vehicle multimedia applets: Framework and functional requirements》(车载多媒体小程序框架和技术需求)国际标准。 这是全球首个由中国企业主导制定的车载小…

LNMP环境搭建动态网站

一、环境准备 服务器:openEuler 22.03 Linux IPV4 :192.168.110.144/24 网页服务器:Nginx1.21.0 数据库:MySQL 8.0.36 PHP:8.0.30 1.安装软件 [rootnode3 ~]# yum install php-mysqlnd php php-gd php-fpm php-xml -y…

在ESXi中部署时出现the host does not support intel vt-x

在VCenter中新建了一台ESXi用于部署VCSA进行实验 在部署VCSA的第二阶段,出现the host does not support intel vt-x,部署失败。 解决办法:点进ESXi虚拟机的设置界面(要先关机),将硬件虚拟化打开&#xff0c…

Socket.D 协议的开发缘由

为什么搞个新协议? 2021年时,想为 Solon 生态 提供一种 MVC 体验的 Socket 和 WebSocket 开发方式。这个想法,要求消息“能路由”、“有元信息”、“可建立关联性”。于是就开发了 Socket.D 早期版本(算是草案版)。经…

关于Odoo Bus 总线库

Odoo 是一款流行的开源业务管理软件,拥有许多用于管理各种业务流程的应用程序,例如会计、销售、库存等。 Odoo Bus 是一个消息传递系统,允许 Odoo 中的客户端和服务器之间进行实时通信。 Odoo Bus 库是一个用于在 Odoo Bus 上构建实时应用程序…

【Vue3+Vite】路由机制router 快速学习 第四期

文章目录 路由简介路由是什么路由的作用 一、路由入门案例1. 创建项目 导入路由依赖2. 准备页面和组件3. 准备路由配置4. main.js引入router配置 二、路由重定向三、编程式路由(useRouter)四、路由传参(useRoute)五、路由守卫总结 路由简介 路由是什么 路由就是根据不同的 URL…

正点原子--STM32中断系统学习笔记(2)

引言 上篇帖子STM32中断系统学习笔记(1)是理论,这篇帖子开始实战,目标是通过按键实现LED的控制。 1.工程建立 以正点原子HAL库 实验1 跑马灯实验为基础,复制工程,在“Drivers--BSP”目录下建立EXTI文件夹,并创建ext…

Spring Cloud Gateway 修改请求体、响应体

前言 例行每半年一次的工作轮换,接手了同事的网关服务 年底了工作不是很忙,看了下前人的代码,虽然都能读懂,但感觉应该可以再优雅一点 于是把网关的相关知识又翻阅了一下 官方资料 PS:这里如果按新方案调整的话&#…

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了? 前言 在网上搜“防火墙开启某个端口”供其他机器访问,都是只讲到了“如何允许某个端口被访问”,而没有后续了。 我之前就遇到过这个问题&…

数据据库八之 视图、触发器、事务

【零】准备数据 【1】创建表 (1)部门表 d_id是部门的编号d_name是部门的名字 # 确保表不存在 drop table if exists department; # 创建表 create table department( d_id int auto_increment primary key, d_name varchar(6) )auto_increment 501 …

STM32-GPIO输入——按键检测

1 软件设计 为了使程序更有条例,方便移植在“工程模板”之上新建“bsp_key.c”及“bsp_key.h”文件,这些文件也可根据您的喜好命名,这 些文件不属于STM32HAL库的内容,是由我们自己根据应用需要编写的 1.1 编程要点 1&#xff…

2024-01-06-AI 大模型全栈工程师 - 机器学习基础

摘要 2024-01-06 阴 杭州 晴 本节简介: a. 数学模型&算法名词相关概念; b. 学会数学建模相关知识; c. 学会自我思考,提升认知,不要只会模仿; 课程内容 1. Fine-Tuning 有什么作用? a. 什么是模型训练&#xff…

Linux(一)

目录结构 【在 Linux 世界里,一切皆文件】 linux 的文件系统是采用级层式的树状目录结构; 序号名称介绍备注1/:根目录一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始; 当…

机器学习1-种类及应用

机器学习主要包括以下几种主要的种类: 1. 监督学习(Supervised Learning) 在监督学习中,模型通过使用已标记的训练数据(包括输入和对应的输出)来学习预测目标变量。常见的任务包括回归和分类。应用&#xf…

Docker进阶篇-Docker微服务实战

一、通过IDEA新建一个普通微服务模块 1、建Moduel <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation…

Open CASCADE学习|曲面上一点的曲率及切平面

曲率&#xff08;Curvature&#xff09;是一个几何学的概念&#xff0c;用于描述一个物体的形状在某一点上的弯曲程度。在我们日常生活中&#xff0c;曲率与我们的生活息息相关&#xff0c;如道路的弯道、建筑物的拱形结构、自然界的山脉等等。了解曲率的概念和计算方法&#x…

开源软件,推动技术创新

文章目录 一、开源软件介绍二、推动技术创的影响力三、常见的开源软件四、应用案例五、存在安全风险 一、开源软件介绍 开源软件&#xff0c;也称为自由软件或公众可用的软件&#xff0c;是一种源代码公开的软件。与传统的商业软件不同&#xff0c;开源软件由社区驱动&#xf…