言·旅·此

指南 入门

脚本说明:图像压缩与格式转换

compress-images.ts 是一个用于自动化图像压缩和格式转换的脚本。它能将常见的图像格式(如 JPG, PNG, TIFF 等)转换为更高效的 WebP 格式,并自动更新项目中所有对这些图像的引用。

功能特性

  • 格式转换:利用 sharp 库将图像转换为 WebP 格式,显著减小文件体积。
  • 自动清理:转换完成后自动删除原始图像文件,保持项目整洁。
  • 引用更新:深度扫描项目中的 Markdown、MDX、YAML、JSON 和 TS 文件,将旧的图像文件名替换为新的 .webp 文件名。
  • 批量处理:支持对指定目录下的所有图像进行递归处理。

使用方法

在终端中运行以下命令:

pnpm compress-images

工作原理

  1. 查找图像:脚本在 public copy(或配置的目标目录)中查找后缀名为 jpg, jpeg, png, bmp, tiff 的文件。
  2. 执行压缩
    • 使用 sharp 以 80% 的质量(默认值)将图像转换为 WebP。
    • 将新文件保存到原位置,并删除原文件。
  3. 记录映射:记录所有发生变更的文件名映射关系。
  4. 全局替换引用
    • 扫描 src/content, docs 目录以及 README.md
    • 按照文件名长度降序排列进行替换,以防止部分匹配导致的错误替换。
    • 写入更新后的内容。

注意事项

  • 备份建议:在运行此脚本前,建议先提交 Git 更改或备份图像,因为脚本会删除原始文件。
  • 配置修改:可以通过修改脚本中的 QUALITY 常量来调整压缩质量,或修改 TARGET_DIRS 来指定不同的处理目录。