【vite+vue3.2 项目性能优化实战】打包体积分析插件rollup-plugin-visualizer视图分析

news2024/10/6 4:13:21

rollup-plugin-visualizer是一个用于Rollup构建工具的插件,它可以生成可视化的构建报告,帮助开发者更好地了解构建过程中的文件大小、依赖关系等信息。

使用rollup-plugin-visualizer插件,可以在构建完成后生成一个交互式的HTML报告,其中包含了构建过程中的各种统计信息,如文件大小、依赖关系、模块数量等。它提供了多种模式的依赖分析,包括直观的视图分析,sunburst(循环层次图,像光谱)、treemap(矩形层次图,看起来比较直观,也是默认参数)、network(网格图,查看包含关系)、raw-data(原数据模式,json格式), list(列表模式),

本篇博客将在vite+vue3.2的项目环境,使用rollup-plugin-visualizer插件分析打包体积、依赖关系等信息视图,了解构建过程中的性能瓶颈优化方向,从而提高应用程序的性能和可维护性

官方地址:https://github.com/btd/rollup-plugin-visualizer

一、安装rollup-plugin-visualizer

首先随意找一个你想加速的项目,进入终端:

npm安装:npm install --save-dev rollup-plugin-visualizer
yarn安装:yarn add --dev rollup-plugin-visualizer

然后配置vite.config.ts中的插件如下,具体来说首先引入模块,然后找到plugins模块,在其中加入visualizer插件。

// 引入rollup-plugin-visualizer模块
import { visualizer } from "rollup-plugin-visualizer";
export default defineConfig({
  plugins: [
    vue(),
    visualizer({
        open:true,  //注意这里要设置为true,否则无效
        filename: "stats.html", //分析图生成的文件名
        gzipSize: true, // 收集 gzip 大小并将其显示
        brotliSize: true, // 收集 brotli 大小并将其显示
    })
  ],
})

其他选项可以看官网说明。(注意:网上不少教程里的参数部分已经过时了,本教程也不一定未来适用,以官网readme为准)

二、运行命令打包,生成分析图

输入npm run build 或者vite run build打包项目,等待片刻,生成分析视图,视图会自动跳出来,并保存在项目根目录下,文件名就是刚刚参数filename的名字(stats.html)

在这里插入图片描述

视图分析中方块越大,表示该文件占用的空间越大,对于网络带宽和访问速度的要求就越高。如果一个网站中包含大量的大文件,那么用户在访问该网站时需要下载更多的数据,这会导致网站加载速度变慢,用户体验变差。

对应的在控制台也会打印对应打包结果:
在这里插入图片描述

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

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

相关文章

【提示学习】Label prompt for multi-label text classification

论文信息 名称内容论文标题Label prompt for multi-label text classification论文地址https://link.springer.com/article/10.1007/s10489-022-03896-4研究领域NLP, 文本分类, 提示学习, 多标签提出模型LP-MTC(Label Prompt Multi-label Text Classification model)来源Appli…

Docker跨主机网络通信

常见的跨主机通信方案主要有以下几种: 形式描述Host模式容器直接使用宿主机的网络,这样天生就可以支持跨主机通信。这样方式虽然可以解决跨主机通信的问题,但应用场景很有限,容易出现端口冲突,也无法做到隔离网络环境…

buildroot系统调试苹果手机网络共享功能

苹果手机usb共享网络调试 首先了解usb基础知识,比如usb分为主设备和从设备进行通信, 1.HOST模式下是只能做主设备, 2.OTG模式下是可以即做主又可以做从,主设备即HCD,从设备即UDC(USB_GADGET &#xff09…

年后准备进腾讯的可以看看....

大家好~ 最近内卷严重,各种跳槽裁员,今天特意分享一套学习笔记 / 面试手册,年后跳槽的朋友想去腾讯的可以好好刷一刷,还是挺有必要的,它几乎涵盖了所有的软件测试技术栈,非常珍贵,肝完进大厂&a…

多态的原理

有了虚函数,会在类的对象增加一个指针,该指针就是虚函数表指针_vfptr;虚表本质就是函数指针数组,虚表里面存放着该对象的虚函数的地址; 派生类继承有虚函数基类的对象模型 子类继承父类的虚表指针时,是对父类的虚表指针进行了拷…

密码学:古典密码.

密码学:古典密码. 古典密码是密码学的一个类型,大部分加密方式是利用替换式密码或移项式密码,有时是两者的混合。古典密码在历史上普遍被使用,但到现代已经渐渐不常用了。一般来说,一种古典密码体制包含一个字母表(如…

MATLAB 点云均匀体素下采样(6)

MATLAB 点云均匀体素下采样的不同参数效果测试 (6) 一、实现效果二、算法介绍三、函数说明3.1 函数3.2 参数四、实现代码(详细注释!)一、实现效果 不同参数调整下的均匀体素下采样结果如下图所示,后续代码复制黏贴即可: 分别为0.3m,0.2m,0.1m尺度下的格网下采样结果…

【C++复习2】C++编译器的工作原理

如果你是一名newbird的话,建议观看如下视频加深你的理解,再看如下内容: https://www.bilibili.com/video/BV1N24y1B7nQ?p7 The cherno会额外告诉你如何将目标文件转换成汇编代码,CPU执行指令的过程以及编译器如何通过删除冗余变…

【MySQL】SQL优化

上一篇索引是针对查询语句进行优化,但在MySQL中可不仅有查询语句,针对其他的SQL语句同样也能进行优化 文章目录 1.插入数据2.主键优化3.order by 优化4.group by优化5.limit优化6.update优化 1.插入数据 插入数据所使用的关键字为insert,SQL语句为 insert into 表名(字段1,字…

Huntly: 一款超强大的自托管信息管理工具,支持管理RSS、自动保存网页、稍后阅读

Huntly是一款开源的自托管信息管理工具,旨在帮助用户更好地管理和处理各种信息。Huntly可以通过管理RSS、自动保存网页和稍后阅读等功能来帮助用户更有效地收集、保存和浏览信息。 github 地址:GitHub - lcomplete/huntly: Huntly, information manageme…

服务器的基本概念与初始Ajax

1. 客户端与服务器 1.1 上网的目的 刷微博、看新闻、听歌、看电影。。。 本质目的:通过互联网的形式来获取和消费资源 1.2 服务器 上网过程中,负责存放和对外提供资源的电脑,叫做服务器。 1.3 客户端 上网过程中,负责获取…

如何用ChatGPT搭建品牌文本体系?(品牌名+slogan+品牌故事)

该场景对应的关键词库(26个): 品牌名、奶茶、中文名、情感联想度、饮料、价值观/理念、发音、slogan、产品功能导向、行业性质导向、经营理念导向、消费者观念导向、口语化、修辞手法、品牌故事、创始人初心品牌故事、里程碑事件故事、产品初…

OpenPCDet系列 | 3.框架训练准备流程

文章目录 训练准备流程1. dataloader部分2. network部分3. optimizer部分4. scheduler部分训练准备流程 对于OpenPCDet中模型的训练过程如下所示,在训练前一般需要进行4个部分的准备:数据准备、网络模型准备、以及优化器和学习率调度器。下面对这4个大部分分别介绍。主要就是…

【PWN刷题__ret2syscall】[Wiki] ret2syscall

初次接触到ret2syscall,而ret2syscall的题目目前没有在各大平台的题目类型筛选中找到,所以还是刷一刷Wiki的经典题目吧!过程中遇到很多问题,包括偏移量的计算、ret2syscall原理的理解等等。尝试以萌新的视角,来分享、解…

我们给AutoGPT写了个插件,手把手看看它的玩法~

目录 先保证你电脑里安装了 Python,然后使用的第一步是安装运行需要的库,这需要你输入这行代码 它会安装这个 txt 文件里面所有的库,比如openai库是用来调用 ChapGPT 的功能,beautifulsoup4库是用来解析网页内容等等。 到此为止…

间谍软件开发商利用漏洞利用链攻击移动生态系统

导语:间谍软件开发商结合使用了零日漏洞和已知漏洞。谷歌TAG的研究人员督促厂商和用户应加快给移动设备打补丁的步伐。 间谍软件开发商利用漏洞利用链攻击移动生态系统去年,几家商业间谍软件开发商开发并利用了针对 iOS 和安卓用户的零日漏洞。然而&…

Vue3项目中使用ECharts图表并实现自适应效果

文章目录 一、Vue3项目安装ECharts二、引入、使用ECharts1.创建图表组件,并在父组件中引入使用2.引入ECharts3.ECharts图表自适应 总结 一、Vue3项目安装ECharts 在项目中输入如下代码: npm install echarts --save安装完成可以在package.json中看到&a…

Vuex在项目中的实际应用

前言 最近让我搞一个关怀版本的系统。纯纯前端、无语死。就是整个系统的字体还有框框啥的变大。简单暴力的做法就是重新写一套样式咯,这不纯纯累死人啊。琢磨了一下,如果可以保存关怀版的一个标志,然后全部组件都可以获取到该标志。通过该标志,然后动态的指定类的样式。 V…

从状态机的角度看 HTML 实体编码的解析:你知道 HTML 实体编码处于哪些位置时可以被正常解析吗?

文章目录 参考描述HTML 实体编码HTML 实体编码为什么需要 HTML 字符编码支持特殊字符和符号避免语法冲突 HTML 实体编号与实体字符常用字符所对应的 HTML 实体编码 HTML 实体编码与 HTML 解析器状态机有限状态机HTML 解析器HTML 与有限状态机HTML 解析器与 HTML 实体编码属性值…

python-11-多线程模块threading

python使用多线程实例讲解 1 进程和线程 1.1 进程和线程的概念 进程(process)和线程(thread)是操作系统的基本概念。 进程是资源分配的最小单位,线程是CPU调度的最小单位。 线程是程序中一个单一的顺序控制流程,进程内一个相对独立的、可调度的执行单…