首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【vite+vue3.2 项目性能优化实战】打包体积分析插件rollup-plugin-visualizer视图分析

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

原创
作者头像
中杯可乐多加冰
发布2024-12-02 22:29:08
发布2024-12-02 22:29:08
3.8K0
举报

在开始之前,推荐大家阅读一篇文章《公平锁与非公平锁:原理、特点及应用场景解析》https://cloud.tencent.com/developer/article/2472930,公平锁遵循先来先服务的原则,多个线程在竞争锁资源时,按照请求锁的先后顺序依次获得锁的使用权。就好比人们在排队购买火车票,谁先到售票窗口排队,谁就先被服务,不会出现后来者插队先拿到票的情况。文章深入探讨公平锁和非公平锁的相关内容,帮助读者更好地理解并在实际开发中合理选用它们。

下面开始今天的主题:

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

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

通过Rollup-plugin-visualizer生成的可视化报告,用户可以轻松发现哪些模块占用了较大的空间,哪些模块之间存在冗余的依赖关系。这些信息对于优化代码结构、减少打包体积、提高页面加载速度等方面都至关重要。

此外,Rollup-plugin-visualizer还支持多种自定义配置,如设置报告的输出格式、选择图表类型、调整主题颜色等。这些配置选项使得用户可以根据自己的需求和喜好来定制报告,以便更好地理解和分析项目的模块依赖和打包结果。

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

官方地址:github.com/btd/rollup-…

一、安装rollup-plugin-visualizer

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

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

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

代码语言:javascript
复制
javascript代码解读复制代码// 引入rollup-plugin-visualizer模块
import { visualizer } from "rollup-plugin-visualizer";
代码语言:javascript
复制
arduino代码解读复制代码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)

在这里插入图片描述
在这里插入图片描述

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

其通常包含以下几个关键部分:

  1. 图表区域:展示项目中各个模块的大小和依赖关系。常见的图表类型包括饼图、桑基图、树状图等。
  2. 模块列表:列出项目中所有的模块,包括它们的大小、来源(如node_modules、src等)以及依赖关系。
  3. 控制选项:提供过滤、搜索、排序等功能,帮助用户快速定位和分析特定模块。

其中:

  • 分析图中,方块或节点的大小通常表示模块的大小。方块越大,表示该模块占用的空间越大。通过观察模块的大小,可以识别出哪些模块是打包体积的主要贡献者。
  • 分析图中的线条或箭头表示模块之间的依赖关系。通过观察依赖关系,可以了解哪些模块被其他模块依赖,以及它们之间的依赖链有多长。 如果配置了gzip或brotli压缩选项,分析图中还会显示模块压缩后的大小。
  • 通过比较原始大小和压缩后大小,可以评估压缩算法对打包体积的减少效果。

对应的在控制台也会打印对应打包结果:

在这里插入图片描述
在这里插入图片描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装rollup-plugin-visualizer
  • 二、运行命令打包,生成分析图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档