vue3 + vite 项目打包优化

ops/2024/10/21 6:05:48/

vue项目打包之后生成的dist包体积太大,超过10M, 进行影响项目加载速度。本文章从作者的实践操作写出如何做项目优化。

一、分析包体积过大的原因

项目初始打包体积为10.6M。

使用 rollup-plugin-visualizer 做打包视图分析。

安装命令:

npm install --save-dev rollup-plugin-visualizer

vite.config.js中引入

import { visualizer } from 'rollup-plugin-visualizer'
export default defineConfig({plugins: [vue(),visualizer({open: true,emitFile: false,filename: 'stats.html',sourcemap: false,}),],
})

配置参数:

参数类型解释
filename/filestring生成分析的文件名
titlestringhtml标签页标题
openboolean以默认服务器代理打开文件
templatestring可选择的图表类型
gzipSizeboolean搜集gzip压缩包的大小到图表
BrotliSizeboolearn搜集brotli压缩包的大小到图表
emitFileboolean使用emitFile生成文件,简单说,这个属性为true,打包后的分析文件会出现在打包好的文件包下,否则就会在项目目录下
sourcemapboolean使用sourcemap计算大小
projectRootstringRegExp 文件的根目录,默认在打包好的目录下

设置完后,可以看到一个stata.html, 在浏览器打开后可以看到项目体积分析报告

二、根据项目情况优化

从报告中得到,引入的@antv/g2 包较大,但是只使用了一部分的图表功能,从此入手。

三、对vite进行配置

  build: {rollupOptions: {output: {manualChunks: (id) => {if (id.includes('/node_modules/@antv'))return 'antv'if (id.includes('/node_modules/element-plus'))return 'element'if (id.includes('node_modules'))return 'vendor'return 'index'},experimentalMinChunkSize: 10 * 1024, // 单位b, 合并较小模块},},},

http://www.ppmy.cn/ops/45282.html

相关文章

YOLOv10最详细全面讲解2- 目标检测-环境搭建、训练自己的数据集

YOLOv10没想到出来的如此之快,作为一名YOLO的爱好者,以YOLOv5和YOLOv8的经验,打算出一套从数据集装备->环境配置->训练->验证->目标追踪全系列教程。请大家多多点赞和收藏!!! 系列文章&#xf…

产品经理-原型绘制(五)

1. 概念 用线条、图形描绘出的产品框架,也称为线框图,是需求和功能的具体化表现 2. 常用工具 Axure 3. 类别 3.1 草图原型 手绘图稿,修改方便,规划的早期使用 3.2 低保真原型 简单交互,无设计图,无需…

QT截图程序,可多屏幕截图二,增加调整截图区域功能

上一篇QT截图程序,可多屏幕截图只是实现了最基本的截图功能,虽然能用但是缺点也有,没办法更改选中的区域,这在实际使用时不太方便。这篇增加了这个功能。先看看效果。 实现代码为: 头文件 #ifndef MASKWIDGET_H #de…

K8s service 进阶

文章目录 K8s service 进阶Service 工作逻辑Service 具体实现Service 资源类型ClusterIPNodePortLoadBalancerExternalName Service 与 EndpointEndpoint 与 容器探针自定义Endpoint Service 相关字段sessionAffinityexternalTrafficPolicyinternalTrafficPolicypublishNotRead…

Vue3学习使用axios和qs进行POST请求和响应处理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、前言1.准备工作2.发送POST请求3.处理响应数据4.总结 一、前言 在前端开发中,经常需要与后端进行数据交互,其中包括发送POST请求并处理响…

四数之和-力扣

本题在三数之和的基础上&#xff0c;再增加一重循环进行解答 首先注意的点是&#xff0c;一级剪枝处理&#xff0c;target > 0 && nums[i] > target 此处只有整数才可剪枝处理&#xff0c;如果target为负数&#xff0c;nums[i] < target&#xff0c;也不能代…

redis服务监控:redis_exporter安装与使用

redis监控 使用redis exporter&#xff0c;提供redis最重要的运行指标数据收集&#xff0c;部署了redis exporter以后&#xff0c;prometheus会通过redis exporter暴露的端口拉取数据。 redis exporter下载地址&#xff1a; https://github.com/oliver006/redis_exporter/tag…

解决Error: error:0308010C:digital envelope routines::unsupported的四种解决方案

问题描述&#xff1a; 报错&#xff1a;Error: error:0308010C:digital envelope routines::unsupported 报错原因&#xff1a; 主要是因为 nodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制&#xff0c;nodeJs v17 之前版本没影响&am…