news 2026/6/25 21:07:35

Vite 如何优化项目的图片体积

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vite 如何优化项目的图片体积

Vite 如何优化项目的图片体积

一、前言

在前端工程化中,图片优化是提升项目性能的重要环节之一,也是提升性能的关键步骤。vite-plugin-imagemin提供了丰富的配置选项,支持 GIF、PNG、JPG、SVG 等格式的压缩。本文将详细介绍该插件的完整配置及各参数的作用。告诉大家如何在 Vite 中使用vite-plugin-imagemin对图片进行高效压缩,减少加载时间,提高用户体验。

二、安装vite-plugin-imagemin

在 Vite 项目中,使用vite-plugin-imagemin进行图片压缩。首先安装插件:

# 写这篇文章的时候,版本是 0.6.1 pnpm add vite-plugin-imagemin -D

三、配置vite.config.ts

vite.config.ts中配置vite-plugin-imagemin,同时判断当前环境是否是生产模式:

import { defineConfig } from 'vite' import viteImagemin from 'vite-plugin-imagemin' export default defineConfig(({ command }) => { const isBuild = command === 'build' // 是否为生产模式 return { plugins: [ viteImagemin({ gifsicle: { interlaced: true, // 隔行扫描 optimizationLevel: 3, // 压缩级别(0-3) }, optipng: { optimizationLevel: 5, // 压缩级别(0-7),值越大压缩率越高 }, mozjpeg: { quality: 80, // 压缩质量(0-100) progressive: true, // 渐进式加载 smooth: 2, // 平滑处理,减少色彩失真 }, svgo: { plugins: [ { name: 'removeViewBox', active: false }, // 保留 viewBox 以防止 SVG 变形 { name: 'removeEmptyAttrs', active: true }, // 移除空属性 { name: 'convertColors', params: { currentColor: true } }, // 颜色转换 ] }, webp: { quality: 80, // WebP 质量(0-100) lossless: false, // 是否无损压缩 method: 6, // 压缩方法(0-6),数值越大,压缩率越高但速度变慢 }, pngquant: { quality: [0.8, 0.9], // PNG 质量范围 speed: 4, // 压缩速度(1-10),数值越大速度越快但压缩率降低 }, disable: !isBuild, // 仅在生产环境启用 /** 是否在控制台输出压缩结果 */ verbose: true, }) ] } })

四、参数解析

4.1、gifsicle(GIF 优化)

参数作用取值范围推荐值
interlaced是否启用隔行扫描true/falsetrue
optimizationLevel压缩级别0-33

4.2、optipng(PNG 优化)

参数作用取值范围推荐值
optimizationLevel压缩级别0-75

4.3、mozjpeg(JPG 优化)

参数作用取值范围推荐值
quality质量0-10080
progressive渐进式加载true/falsetrue
smooth平滑度0-1002

4.4、svgo(SVG 优化)

参数作用取值范围推荐值
removeViewBox保留viewBox防止 SVG 变形true/falsefalse
removeEmptyAttrs移除空属性true/falsetrue
convertColors颜色转换{ currentColor: true }{ currentColor: true }

4.5、webp(WebP 优化)

参数作用取值范围推荐值
quality质量0-10080
lossless是否无损压缩true/falsefalse
method压缩方法(数值越大,压缩率越高但速度变慢)0-66

4.6、pngquant(PNG 量化)

参数作用取值范围推荐值
quality质量范围[min, max](0-1)[0.6, 0.8]
speed压缩速度,越大速度越快但压缩率降低1-104

4.7、其它配置

参数作用取值范围推荐值
svgoOptions.multipass多次优化 SVGtrue/falsetrue
cache开启缓存,加快二次构建true/falsetrue
filter过滤文件路径,如跳过node_modules目录(source: string) => boolean!source.includes('node_modules')
disable仅在生产环境启用true/false!isBuild

五、总结

使用vite-plugin-imagemin,可以实现:

  • ✅ 自动化图片压缩,提高页面加载速度
  • ✅ 支持 PNG、JPG、GIF、SVG、WebP 多种格式
  • ✅ 仅在生产环境启用,开发环境不受影响
  • ✅ 结合缓存功能,提高构建速度

希望这篇文章能帮助你更好地优化 Vite 项目的图片资源!🚀

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 3:52:04

LP3524B高耐压200V隔离型LLC同步整流控制芯片典型电路

MP6924A 在 48 V 适配器、LED TV 电源里已大量采用&#xff0c;但 2024 年 Q3 起交期 20 周&#xff0c;价格翻 1.5 倍。芯茂微推出的 LP3524B 脚位完全兼容&#xff0c;关键参数全面胜出&#xff1a;耐压 200 V&#xff08;vs 200 V 相同&#xff09;、关断速度 < 50 ns&am…

作者头像 李华
网站建设 2026/6/25 3:05:01

PHP 可用的函数

PHP 可用的函数 引言 PHP 是一种广泛使用的开源服务器端脚本语言,它具有丰富的函数库,使得开发者能够轻松地构建各种动态网站和应用程序。本文将详细介绍 PHP 中一些常见的函数,并对其用途和用法进行详细说明。 一、基础函数 1.1 echo 和 print echo 和 print 是 PHP 中…

作者头像 李华
网站建设 2026/6/25 21:04:13

用Playwright替代Selenium:更快更现代的浏览器自动化实战指南

「编程类软件工具合集」 链接&#xff1a;https://pan.quark.cn/s/0b6102d9a66a 引言&#xff1a;为什么需要替代Selenium&#xff1f; 十年前&#xff0c;Selenium是浏览器自动化的绝对王者。它支持多种语言、跨浏览器运行&#xff0c;成为测试工程师和爬虫开发者的首选工…

作者头像 李华
网站建设 2026/6/25 19:55:47

实现 Kafka 数据写入的 Storm 拓扑

以下是基于 Storm 的 Kafka 数据写入实现的关键组件和逻辑分解&#xff1a;WriteTopology 类核心配置TopologyBuilder builder new TopologyBuilder();Properties props new Properties(); props.put("bootstrap.servers", BOOTSTRAP_SERVERS); props.put("ac…

作者头像 李华
网站建设 2026/6/24 18:36:37

LORA温湿度传感器如何赋能六大行业?揭秘无线环境监测的落地新范式

在数字化转型浪潮下&#xff0c;环境参数的实时、精准、远程监控已成为众多行业的刚需。而传统有线温湿度监测方案因布线复杂、成本高、扩展难&#xff0c;正逐步被更灵活高效的无线技术所替代。其中&#xff0c;LORA温湿度传感器凭借超远距离、低功耗、强穿透和高稳定性等优势…

作者头像 李华
网站建设 2026/6/25 1:22:12

从 LLaVA 到 Qwen3-VL,多模态大模型主流架构的演进之路

从 LLaVA 到 Qwen3-VL&#xff0c;多模态大模型主流架构的演进之路大多数人都是高估自己一天可以做的事情&#xff0c;但是低估了自己一年可以做的事情作者&#xff1a;我要吃鸡腿 原文&#xff1a;https://zhuanlan.zhihu.com/p/1963658684765833212引言&#xff1a;当 AI 睁开…

作者头像 李华