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

news2025/2/4 8:50:15

问题场景,如下图,环境上的 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.coloradmin.cn/o/1427297.html

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

相关文章

Java多线程--避免同步机制带来的死锁问题及用Lock锁解决线程安全问题

文章目录 一、死锁(1)说明(2)案例1、案例12、案例23、案例3 (3)诱发死锁的原因及解决方案1、诱发死锁的原因2、避免死锁 二、JDK5.0新特性:Lock(锁)(1)介绍(2…

C++集群聊天服务器 网络模块+业务模块+CMake构建项目 笔记 (上)

跟着施磊老师做C项目&#xff0c;施磊老师_腾讯课堂 (qq.com) 一、网络模块ChatServer chatserver.hpp #ifndef CHATSERVER_H #define CHATSERVER_H#include <muduo/net/TcpServer.h> #include <muduo/net/EventLoop.h> using namespace muduo; using namespace …

Qt6入门教程 15:QRadioButton

目录 一.简介 二.常用接口 三.实战演练 1.径向渐变 2.QSS贴图 3.开关效果 4.非互斥 一.简介 QRadioButton控件提供了一个带有文本标签的单选按钮。 QRadioButton是一个可以切换选中&#xff08;checked&#xff09;或未选中&#xff08;unchecked&#xff09;状态的选项…

深信服技术认证“SCCA-C”划重点:深信服云计算关键技术

为帮助大家更加系统化地学习云计算知识&#xff0c;高效通过云计算工程师认证&#xff0c;深信服特推出“SCCA-C认证备考秘笈”&#xff0c;共十期内容。“考试重点”内容框架&#xff0c;帮助大家快速get重点知识。 划重点来啦 *点击图片放大展示 深信服云计算认证&#xff08…

SG2520CAA汽车用晶体振荡器

爱普生SG2520CAA是简单的封装晶体振荡器&#xff08;SPXO&#xff09;&#xff0c;具有CMOS输出&#xff0c;这款SPXO是汽车和高可靠性应用的理想选择&#xff0c;符合AEC-Q200标准&#xff0c;功耗低&#xff0c;工作电压范围为1.8 V ~ 3.3 V类型&#xff0c;宽工作温度-40℃~…

binder android

文心一言的回答 Binder驱动是Android操作系统中用于进程间通信&#xff08;IPC&#xff09;的机制。它提供了一种高效、跨进程的数据传输方式&#xff0c;使得应用程序的不同组件可以在Android系统上互相通信。 Binder驱动基于Linux内核&#xff0c;其核心组件是一个称为Bind…

git小白之路

初始配置 配置账号密码 git config --list # 设置git的name git config --global user.name "determination" # 设置git的邮箱 git config --global user.email "XXXX.XX.conm" 配置ssh-key ssh-keygen -t rsa -C "usernameemail.com" 添…

活用社交媒体生成二维码:拓展品牌影响力的新时代

社交媒体二维码为品牌在社交媒体平台上的拓展和互动提供了全新的可能性。在这个信息爆炸的时代&#xff0c;如何巧妙地应用社交媒体二维码&#xff0c;成为品牌拓展影响力、与用户建立深度互动的关键。本文将探讨如何精明地应用社交媒体生成二维码&#xff0c;为品牌带来更多的…

来看看思特数字创意产业的科技与狠活儿~ 冰雪大世界图集

01    哈尔滨冰雪大世界以“龙腾冰雪 逐梦亚冬”为主题&#xff0c;为世界各地游客打造一座集冰雪艺术、冰雪文化、冰雪演艺、冰雪建筑、冰雪活动、冰雪体育于一体的冰雪乐园。      02    服务商思特数字创意公司构建“龙腾之韵、雪城乐章、跳动音符、雪映流光”四…

leetcode-35.搜索插入位置

题目 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入…

幻兽帕鲁服务器搭建

获取服务器 有如下方法&#xff1a; 阿里云提供现成的幻兽帕鲁服务器&#xff0c;支持一键部署和升级。购买通用服务器或利用已有的主机&#xff0c;配置幻兽帕鲁服务。 第一种可以零代码实现&#xff0c;本文不作赘述&#xff0c;本文主要介绍如何通过已有的Linux服务器实现…

时间序列预测 —— TCN模型

时间序列预测 —— TCN模型 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;在图像处理等领域取得了显著的成就&#xff0c;一般认为在处理时序数据上不如RNN模型&#xff0c;而TCN&#xff08;Temporal Convolutional Network&#xff09;…

基于python+django,我开发了一款药店信息管理系统

功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。 功能包括&#xff1a;药品管理、分类管理、顾客管理、用户管理、日志管理、系统信息模块。 代码结构 server目录是后端代码web目录是前端代码 部署运行…

Camille-学习笔记-web基础知识

web基础1.系统架构 B/S :Browser/Server 网站 界面层&#xff08;UI&#xff09; 业务逻辑层&#xff08;业务&#xff09; 数据访问层&#xff08;数据库&#xff09; 静态网页&#xff1a;和服务器没有数据交互 动态网页&#xff1a;网页数据可以和服务器进行数据交互 URL…

【数据结构】(四)图

目录 言 图的入门及无向图的实现 1. 图的相关概念 2. 图的相关术语 3. 图的存储结构 3.1 邻接矩阵 3.2 邻接表 3.3 邻接表实现 图的搜索算法 1. 深度优先搜索 1.1 搜索思路 1.2 代码实现 2. 广度优先搜索 2.1 搜索思路 2.2 代码实现 后记 言 数据结构分为逻辑结…

vscode 如何修改c/c++格式化风格,大括号不换行

在Visual Studio Code&#xff08;VSCode&#xff09;中&#xff0c;若要修改C代码格式化的风格以实现大括号不换行&#xff0c;通常会借助于插件C/C扩展中的ClangFormat配置。以下是具体的步骤&#xff1a; 确保已安装了C/C扩展&#xff1a; 打开VSCode的扩展市场&#xff08;…

【飞书小技巧】——飞书文档转 markdown 详细教程

飞书文档转 markdown 详细教程 基于项目:https://github.com/Wsine/feishu2md 如何使用 在线版 访问 https://feishu2md.onrender.com/ 粘贴文档链接即可&#xff0c;文档链接可以通过 分享 > 开启链接分享 > 复制链接 获得。 点击下载之后,会提示 Please wait. It ma…

回归预测 | Matlab基于POA-LSSVM鹈鹕算法算法优化最小二乘支持向量机的数据多输入单输出回归预测

回归预测 | Matlab基于POA-LSSVM鹈鹕算法算法优化最小二乘支持向量机的数据多输入单输出回归预测 目录 回归预测 | Matlab基于POA-LSSVM鹈鹕算法算法优化最小二乘支持向量机的数据多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基于POA-LSSVM…

回归预测 | Matlab实现CPO-LSTM【24年新算法】冠豪猪优化长短期记忆神经网络多变量回归预测

回归预测 | Matlab实现CPO-LSTM【24年新算法】冠豪猪优化长短期记忆神经网络多变量回归预测 目录 回归预测 | Matlab实现CPO-LSTM【24年新算法】冠豪猪优化长短期记忆神经网络多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-LSTM【24年新算…

西圣Olite开放式耳机持续100+天霸榜:品质优势再掀数码狂潮

随着开放式耳机的市场竞争加剧&#xff0c;用户对耳机的音质和配置要求越来越高。而西圣开放式耳机的不断推陈出新&#xff0c;正是对客户需求的完美回应&#xff01;西圣开放式耳机&#xff0c;在现在鱼龙混杂的市场上&#xff0c;能够获得着卓越的研发成果并且还在不断的追求…