核心用法
baoyu-compress-image 是一款基于 Bun 运行时开发的智能图片压缩 CLI 工具,支持 macOS、Linux、WSL 及 Windows(PowerShell)多平台。用户通过 ${BUN_X} {baseDir}/scripts/main.ts 调用,输入单文件或目录即可自动完成格式转换与体积优化。
关键参数:
-f/--format:输出格式(webp/png/jpeg),默认 WebP-q/--quality:质量 0-100,默认 80-k/--keep:保留原文件-r/--recursive:递归处理子目录--json:结构化输出便于集成
智能引擎选择:按优先级自动检测 sips(macOS 原生)→ cwebp → ImageMagick → Sharp,无需手动指定依赖。
显著优点
1. 零配置开箱即用:自动降级依赖链,用户仅需安装 bun 或 npx 即可运行
2. 多层级配置支持:通过 EXTEND.md 支持项目级、XDG 标准级、用户级三档偏好持久化
3. 跨平台兼容:原生适配 POSIX shell 与 PowerShell,路径解析逻辑分离清晰
4. 高效批量处理:递归模式配合 JSON 输出,适合 CI/CD 集成
潜在缺点与局限性
- 运行时依赖:强制依赖 Bun 生态,未预装 bun 时需经 npx 二次拉取,冷启动延迟
- 引擎优先级固化:sips 仅在 macOS 可用,Linux/Windows 用户无法享受原生加速
- 质量映射非透明:各引擎对
-q 80的实际编码策略可能存在差异,缺乏统一校准 - 无预览回滚:默认覆盖原文件(--keep=false),误操作风险需用户自行规避
适合人群
- 前端开发者:批量优化构建产物图片
- 运维/CI 工程师:集成至部署流水线自动压缩
- 内容运营:本地快速处理素材,无需打开 Photoshop
常规风险
- 数据覆盖风险:默认行为替换原文件,建议首次使用加
-k验证输出 - 质量损失不可逆:WebP 为有损格式,高压缩比下可能出现色带、模糊
- 依赖漂移:npx -y bun 可能拉取最新版本,存在 API 变更隐患
- EXTEND.md 配置泄露:若将敏感路径写入项目级配置,可能随仓库暴露