compress-images.ts 是一个用于自动化图像压缩和格式转换的脚本。它能将常见的图像格式(如 JPG, PNG, TIFF 等)转换为更高效的 WebP 格式,并自动更新项目中所有对这些图像的引用。
功能特性
- 格式转换:利用
sharp库将图像转换为 WebP 格式,显著减小文件体积。 - 自动清理:转换完成后自动删除原始图像文件,保持项目整洁。
- 引用更新:深度扫描项目中的 Markdown、MDX、YAML、JSON 和 TS 文件,将旧的图像文件名替换为新的
.webp文件名。 - 批量处理:支持对指定目录下的所有图像进行递归处理。
使用方法
在终端中运行以下命令:
pnpm compress-images工作原理
- 查找图像:脚本在
public copy(或配置的目标目录)中查找后缀名为jpg,jpeg,png,bmp,tiff的文件。 - 执行压缩:
- 使用
sharp以 80% 的质量(默认值)将图像转换为 WebP。 - 将新文件保存到原位置,并删除原文件。
- 使用
- 记录映射:记录所有发生变更的文件名映射关系。
- 全局替换引用:
- 扫描
src/content,docs目录以及README.md。 - 按照文件名长度降序排列进行替换,以防止部分匹配导致的错误替换。
- 写入更新后的内容。
- 扫描
注意事项
- 备份建议:在运行此脚本前,建议先提交 Git 更改或备份图像,因为脚本会删除原始文件。
- 配置修改:可以通过修改脚本中的
QUALITY常量来调整压缩质量,或修改TARGET_DIRS来指定不同的处理目录。