当前位置: 首页 > news >正文

Vue3.2 + vue/cli-service 打包 chunk-vendors.js 文件过大导致页面加载缓慢解决方案

chunk-vendors.js 是/node_modules 目录下的所有模块打包成的包, 但是这包太大导致页面加载很慢(我的都要3-4秒了), 这个时候就会出现白屏的情况

解决方案

        1、compression-webpack-plugin 插件解决方案

                1)、安装

npm install compression-webpack-plugin -D

                2)、在vue.config.js中使用 compression-webpack-plugin

 const compressionWebpackPlugin = require('compression-webpack-plugin');chainWebpack: config => {if (!_IS_DEV__) {// 开启gzip压缩config.plugin('compressionPlugin').use(new compressionWebpackPlugin({algorithm: 'gzip',test: /\.js$|\.html$/,threshold: 10240,minRatio: 0.6,  // 必须为false, 不然部署之后会报错deleteOriginalAssets: false}));}// nginx server 里面配置// # 前端将文件打包成.gz文件,然后通过nginx的配置,让浏览器直接解析.gz文件,可以大大提升文件加载的速度。// # compression-webpack-plugin 配置// gzip on;// gzip_min_length 1k;// gzip_comp_level 9;// gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;// gzip_vary on;// # 配置禁用 gzip 条件,支持正则,此处表示 ie6 及以下不启用 gzip(因为ie低版本不支持)// gzip_disable "MSIE [1-6]\.";},

        3)、压缩对比

                压缩之后1.5M变成466kb, 加载的时候就会加载这个466kb的文件

        4)、配置nginx:在server中配置如下内容

  # 前端将文件打包成.gz文件,然后通过nginx的配置,让浏览器直接解析.gz文件,可以大大提升文件加载的速度。# compression-webpack-plugin 配置gzip on;gzip_min_length 1k;gzip_comp_level 9;gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript applicationx-httpd-php image/jpeg image/gif image/png;gzip_vary on;# 配置禁用 gzip 条件,支持正则,此处表示 ie6 及以下不启用 gzip(因为ie低版本不支持)gzip_disable "MSIE [1-6]\.";

        2、使用webpack optimization 进行对大文件分包打包

                会把node_modules中的第三方文件独立打包,配置如下:

optimization: {runtimeChunk: 'single',splitChunks: {chunks: 'all',maxInitialRequests: Infinity,minSize: 20000,cacheGroups: {vendors: {test: /[\\/]node_modules[\\/]/, // 使用正则匹配node_modules中引入的模块priority: -10, // 优先级值越大优先级越高,默认-10,不用修改name(module) {// 设定分包以后的文件模块名字,按照包名字替换拼接一下if (!module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)) return;const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];return `npm.${packageName.replace('@', '')}`;}}}}
}

相关文章:

Vue3.2 + vue/cli-service 打包 chunk-vendors.js 文件过大导致页面加载缓慢解决方案

chunk-vendors.js 是/node_modules 目录下的所有模块打包成的包, 但是这包太大导致页面加载很慢(我的都要3-4秒了), 这个时候就会出现白屏的情况 解决方案 1、compression-webpack-plugin 插件解决方案 1)、安装 npm …...

Java学习笔记NO.18

T1.理工超市 &#xff08;1&#xff09;题目描述 编写一个程序&#xff0c;设计理工超市功能菜单并完成注册和登录功能的实现。显示完菜单后&#xff0c;提示用户输入菜单项序号。当用户输入<注册>和<登录>菜单序号时模拟完成注册和登录功能&#xff0c;最后提示…...

【JVM】聊聊垃圾回收之三色标记算法

在垃圾收集器 CMS中存在四个阶段&#xff0c;初始标记、并发标记、重新标记、并发清理。 那么在并发标记中由于没有STW&#xff0c;业务程序和GC程序是并发执行的&#xff0c;那么是如何实现对象的并发标记的。 并发垃圾回收 并发标记其实是一个宏观的过程&#xff0c;仍然需…...

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Image)

Image为图片组件&#xff0c;常用于在应用中显示图片。Image支持加载PixelMap、ResourceStr和DrawableDescriptor类型的数据源&#xff0c;支持png、jpg、jpeg、bmp、svg、webp和gif类型的图片格式。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&am…...

华为OD面试分享8(2024年)

个人情况&#xff1a; 23毕业&#xff0c;24一战跨考ustc&#xff0c;觉G。 211本&#xff0c;目标院校。 知识储备&#xff1a; 仅限408 用leetcode刷过408排序算法 0项目经验 时间线&#xff1a; 23.12.27 投的简历。当时啥也不会啥也不知道&#xff0c;听入职的同学说…...

Java的堆如何分代的?

前言&#xff1a; java对象一般都是朝生夕死&#xff0c;也有部分对象是一直存在的。两种对象如何都放在一起&#xff0c;进行垃圾回收的时候效率较低。所以通过将不同时期的对象放在不同的内存池中&#xff0c;节省垃圾回收的时间&#xff0c;提高性能。 组成&#xff1a; 新生…...

C# CallerMemberName、CallerFilePath、CallerLineNumber

CallerMemberName&#xff1a;调用某个方法的主方法名称 CallerFilePath&#xff1a;调用某个方法的主方法所在的类文件地址 CallerLineNumber&#xff1a;调用这个方法所在的行号 用这三个附加属性&#xff0c;需要设置默认值。...

Claude3系统解读与使用测评

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...

vue3注册全局组件

注册单个全局组件 一.在main.ts中引入注册为全局组件 在main.ts 引入我们的组件跟随在createApp(App) 后面 切记不能放到mount 后面这是一个链式调用用其次调用 component 第一个参数组件名称 第二个参数组件实例 import { createApp } from vue import App from ./App.vue …...

vue 在什么情况下在数据发生改变的时候不会触发视图更新

在 Vue 中&#xff0c;通常数据发生变化时&#xff0c;视图会自动更新。但是&#xff0c;有几种情况可能导致数据变化不会触发视图更新&#xff1a; 1.对象属性的添加或删除&#xff1a; Vue 无法检测到对象属性的添加或删除。因为 Vue 在初始化实例时对属性执行了 getter/se…...

HTML世界之标签Ⅲ

一、dfn 标签 <dfn> 标签是一个短语标签&#xff0c;用来定义一个定义项目。 写法&#xff1a; <dfn></dfn> 二、dialog 标签 <dialog> 标签定义一个对话框、确认框或窗口。 属性 值 描述 open open 规定 dialog 元素是有效的&#xff0c;用户…...

【UE5】游戏框架GamePlay

项目资源文末百度网盘自取 游戏框架 游戏 由 游戏模式(GameMode) 和 游戏状态(GameState) 所组成 加入游戏的 人类玩家 与 玩家控制器(PlayerController) 相关联 玩家控制器允许玩家在游戏中拥有 HUD&#xff0c;这样他们就能在关卡中拥有物理代表 玩家控制器还向玩家提供 …...

用户管理【MySQL】

文章目录 查看用户信息创建用户修改密码删除用户授予权限收回权限 查看用户信息 在名为mysql的数据库中有一个表user维护着 MySQL 的用户信息。 其中&#xff1a; user&#xff1a; 表示该用户的用户名。host&#xff1a; 表示该用户可以从哪个主机登录&#xff0c;localhost…...

Rust教程:How to Rust-变量

本文为第1篇 专栏简介 本专栏是优质Rust技术专栏&#xff0c;推荐精通一门技术栈的蟹友&#xff0c;不建议完全无计算机基础的同学 感谢Rust圣经开源社区的同学&#xff0c;为后来者提供了非常优秀的Rust学习资源 本文使用&#xff1a; 操作系统macOS Sonoma 14 / Apple M…...

TCP/IP超全笔记 - TCP篇

TCP/IP超全笔记 - TCP篇 什么是 TCP TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。 面向连接&#xff1a;一对一&#xff0c;先连接&#xff0c;再传输数据可靠交付&#xff1a;…...

MIT 6.858 计算机系统安全讲义 2014 秋季(一)

译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 MIT 6.858 计算机系统安全笔记 2014 秋季 2014 年由Nickolai Zeldovich 教授和James Mickens 教授教授授课的 6.858 讲座笔记。这些讲座笔记略有修改&#xff0c;与 6.858 课程网站上发布的内容略有不同。 第1讲&#x…...

mybatis-plus整合spring boot极速入门

使用mybatis-plus整合spring boot&#xff0c;接下来我来操作一番。 一&#xff0c;创建spring boot工程 勾选下面的选项 紧接着&#xff0c;还有springboot和依赖我们需要选。 这样我们就创建好了我们的spring boot&#xff0c;项目。 简化目录结构&#xff1a; 我们发现&a…...

Kafka|处理 Kafka 消息重复的有效措施

文章目录 消息重复场景生产者端Kafka Broker消费者端 如何防止消息重复 消息重复是 Kafka 系统中另一个常见的问题&#xff0c;可能发生在生产者、Broker 或消费者三个方面。下面我们来讨论一些可能导致消息重复的场景以及如何处理。 消息重复场景 生产者端 重试机制导致消息…...

【C++】函数模板和类模板

目录 1.泛型编程 2.函数模板 2.1函数模板的定义格式 2.2函数模板的实例化 2.3函数模板参数的匹配原则 3.类模板 3.1类模板的定义格式 3.2类模板的实例化 3.3模板的分离编译 1.泛型编程 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段…...

Echarts 配置项 series 中的 data 是多维度

文章目录 需求分析 需求 如下图数据格式所示&#xff0c;现要求按照该格式进行绘制折线图 分析 在绘制折线图时&#xff0c;通常我们的 series 中的 data 数据是这样的格式 option {title: {text: Stacked Area Chart},tooltip: {trigger: axis,axisPointer: {type: cross…...

宝塔面板安装后MySQL无法启动_修复数据表损坏与日志恢复

MySQL启动失败应先查错误日志&#xff1a;主路径为/www/server/data/*.err&#xff0c;次选/www/server/mysql/logs/error.log&#xff1b;若不存在则找/www/server/data/下最新.err文件&#xff1b;再结合my.cnf中log-error配置确认实际路径。MySQL 启动失败时先看 mysqld 错误…...

【粉丝福利社】从“找资料”到“资料找我”:OpenClaw如何让信息搜集效率翻倍?

&#x1f48e;【行业认证权威头衔】 ✔ 华为云天团核心成员&#xff1a;特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者社区全满贯&#xff1a;CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主 ✔ 技术生态共建先锋&am…...

MCP协议如何重塑前端开发工作流

前言 2026年&#xff0c;AI与前端开发的融合进入新阶段。MCP&#xff08;Model Context Protocol&#xff09;协议作为Anthropic推出的开放标准&#xff0c;正在彻底改变我们构建AI驱动应用的方式。本文将深入探讨MCP在前端工程中的实战应用。 正文 一、MCP协议核心概念 MCP协议…...

MLX‑VLM :Mac本地跑通多模态大模型的开源项目!让图片、音频、视频理解一键上手

目录 一、MLX‑VLM到底是什么&#xff1f; 二、核心亮点&#xff1a;Mac本地多模态自由 1. 全模态支持&#xff1a;看、听、读全都行 2. 性能拉满&#xff1a;苹果芯片深度优化 1) Qwen3.5‑4B‑4bit&#xff08;128k 上下文&#xff09; 2) gemma‑4‑31b‑it&#xff0…...

数字孪生赋能智慧校园:三维可视化运维检测平台的创新实践

1. 数字孪生如何重塑智慧校园管理 第一次看到浙江工商大学的数字孪生校园平台时&#xff0c;我完全被震撼到了——整个校园的每栋建筑、每条道路甚至每棵树都以三维形式精确还原在屏幕上&#xff0c;实时数据像血液一样在虚拟校园中流动。这种技术正在彻底改变传统校园管理模式…...

Python Tkinter如何实现组件隐藏与显示_利用pack_forget管理布局

pack_forget() 并未销毁组件&#xff0c;仅临时移除布局&#xff1b;组件对象、事件绑定和属性均保持有效&#xff0c;与 destroy() 的不可逆性有本质区别。pack_forget 后组件真的“消失”了吗&#xff1f;不是销毁&#xff0c;只是从布局管理器中临时移除&#xff1b;组件对象…...

【权威白皮书首发】:基于17个跨模态基准测试(VQA-X、MME-XAI、RefCOCO-X)的可解释性评估矩阵——92.6%的SOTA模型在细粒度归因上存在系统性失效

第一章&#xff1a;多模态大模型可解释性研究的范式危机与白皮书使命 2026奇点智能技术大会(https://ml-summit.org) 当前&#xff0c;多模态大模型正以前所未有的规模整合文本、图像、音频与视频信号&#xff0c;但其内部决策逻辑日益成为“黑箱中的黑箱”。传统基于单模态归…...

终极指南:3分钟快速定位Windows热键冲突的智能侦探工具

终极指南&#xff1a;3分钟快速定位Windows热键冲突的智能侦探工具 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...

贵阳纳海川科技·蔬菜配送行业解决方案

AIIoT赋能蔬菜配送数字化转型&#xff1a;全链路技术方案实践据行业数据显示&#xff0c;传统蔬菜配送行业平均损耗率达15%-25%&#xff0c;人工分拣错漏率超8%&#xff0c;车辆空驶率达28%&#xff0c;利润率仅4%左右。面对蔬菜易腐烂、价位波动大、保鲜要求高的行业特性&…...

从零开始搭建CTF靶场:catcat漏洞环境复现与调试指南

从零开始搭建CTF靶场&#xff1a;catcat漏洞环境复现与调试指南 在网络安全领域&#xff0c;CTF&#xff08;Capture The Flag&#xff09;比赛已成为检验安全技能的重要方式。而搭建本地靶场环境&#xff0c;则是学习漏洞原理和攻防技术的绝佳途径。本文将带你从零开始构建一…...