当前位置:首页 > 技术分析 > 正文内容

vite打包优化vite-plugin-compression的使用和配置案例

ruisui884个月前 (02-03)技术分析18

vite-plugin-compression是一个用于vite打包优化的插件,它可以自动地为你的打包文件生成gzip和brotli格式的压缩文件,从而减少文件的体积,提升页面加载速度。

要使用vite-plugin-compression,首先需要在项目中安装该插件:

npm install vite-plugin-compression -D

安装完成后,在vite.config.js中引入该插件并进行配置:

import { defineConfig } from 'vite'
import compression from 'vite-plugin-compression'

export default defineConfig({
  plugins: [
    // 开启gzip压缩
    compression({
      algorithm: 'gzip',
      ext: '.gz'
    }),
    // 开启brotli压缩
    compression({
      algorithm: 'brotliCompress',
      ext: '.br',
      quality: 11 // 设置brotli压缩质量为最高级别
    })
  ]
})

通过以上配置,vite-plugin-compression会自动地为你的打包文件生成gzip和brotli格式的压缩文件,并将它们放置在与源文件同目录下。

在gzip插件中,我们设置了算法为gzip,并将生成的文件后缀名设置为.gz。这里需要注意的是,如果不指定后缀名,插件默认生成的压缩文件后缀为.br。

在brotli插件中,我们设置了算法为brotliCompress,并将生成的文件后缀名设置为.br。此外,我们还将压缩质量设置为最高级别,以获得更好的压缩效果。

通过以上配置,vite-plugin-compression会自动地为你的打包文件生成gzip和brotli格式的压缩文件,并将它们放置在与源文件同目录下。

需要注意的是,由于压缩文件生成的过程比较耗时,因此在开发过程中应该将该插件放置在生产环境的插件列表中,避免对开发时的构建速度产生影响。

除了上述的基本配置之外,vite-plugin-compression还提供了一些其他的配置选项,下面我们来一一介绍。

1.filter

filter选项可以用来过滤需要压缩的文件,只有符合条件的文件才会被压缩。它接收一个正则表达式或者一个函数作为参数,如果返回值为true,则表示该文件需要被压缩。

compression({
  algorithm: 'gzip',
  filter: /\.(js|css|html)$/i
})

在这个例子中,我们将只会压缩js、css和html文件。

2.threshold

threshold选项用来限制压缩文件的最小大小。只有文件大小大于threshold时,才会被压缩。

compression({
  algorithm: 'gzip',
  threshold: 10240 // 只有大于10kb的文件才会被压缩
})

在这个例子中,我们设置threshold为10240,表示只有文件大小大于10kb时,才会被压缩。

3.deleteOriginFile

deleteOriginFile选项用来指定是否删除原始文件。如果设置为true,则表示在生成压缩文件之后,会删除原始文件。

compression({
  algorithm: 'gzip',
  deleteOriginFile: true // 压缩完成之后删除原始文件
})

在这个例子中,我们设置deleteOriginFile为true,表示在生成gzip压缩文件之后,会删除原始文件。

其他算法

除了gzip和brotli算法之外,vite-plugin-compression还支持一些其他的算法,例如deflate、deflateRaw等。可以通过设置algorithm选项来指定算法。

compression({
  algorithm: 'deflate'
})

在这个例子中,我们将使用deflate算法对文件进行压缩。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/866.html

标签: vite.js
分享给朋友:

“vite打包优化vite-plugin-compression的使用和配置案例” 的相关文章

Git分布式系统---Gitlab多人工作流程

前言在上一次推文中,我们已经很清楚的讲解了如何创建本地仓库、提交(push)项目到远程仓库以及从远程仓库clone(克隆)项目到本地的相关操作。大家可以先去看前面的推文(快速掌握Git分布式系统操作)点击查看目前无论你是否步入社会还是在校学生,都会使用Gitlab来进行团队的代码管理。(可以这样说:...

Gitlab之间进行同步备份

目前,我们公司有两个研发团队,分别在北京和武汉,考虑到访问速度的问题,原有武汉的研发环境在近端部署。也就是北京和武汉分别有两套独立的研发管理环境,虽然这解决了近端访问速度的问题,但是管理上较为分散,比如研发环境备份和恢复就是最重要的问题之一。最近,处于对安全性和合规性的考虑,希望将北京和武汉的源代码...

K8s里我的容器到底用了多少内存?

作者:frostchen导语 Linux下开发者习惯在物理机或者虚拟机环境下使用top和free等命令查看机器和进程的内存使用量,近年来越来越多的应用服务完成了微服务容器化改造,过去查看、监控和定位内存使用量的方法似乎时常不太奏效。如果你的应用程序刚刚迁移到K8s中,经常被诸如以下问题所困扰:容器的...

内存问题探微

这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的分享,四年前第一届 TechDay 不知天高地厚,上去讲了一个《MySQL 最佳实践》,现在想起来那...

美国民众负债累累 但今年假期消费者支出仍将创下新高

智通财经APP获悉,在迎接假期之际,许多美国人已经背负了创纪录的信用卡债务。然而,今年假期消费者支出仍将创下新高。根据美国零售联合会(NRF)上周发布的报告,预计今年11月1日至12月31日期间的消费总额将达到创纪录的9795亿至9890亿美元之间。NRF首席经济学家Jack Kleinhenz表示...

有效地简化导航-Part 1:信息架构

「四步走」——理想的导航系统要做一个可用的导航系统,网页设计师必须按顺序回答以下4个问题:1. 如何组织内容?2. 如何解释导航的选项?3. 哪种导航菜单最适合容纳这些选项?4. 如何设计导航菜单?前两个问题关注构建和便签内容,通常称为信息架构。信息架构师通常用网站地图(site map diagr...