安装 CLI
从 npm 全局安装:
npm install -g super-img-compress@latest
安装完成后检查命令是否可用:
super-img-compress --help
快速开始
压缩整个文件夹,默认直接替换原文件夹中的图片:
super-img-compress -i ./images
压缩单张图片:
super-img-compress -i ./photo.png
默认行为:
- 不传
-q时,质量默认为80。 - 不传
-f时,每张图片保持自己的原格式。 - 不传
-o时,直接原地替换输入图片或文件夹。 - 处理文件夹时会递归扫描子目录。
压缩文件夹
假设目录结构如下:
images/
banner.png
avatar.jpg
product/
cover.webp
执行:
super-img-compress -i ./images
处理后仍然保留原目录结构和文件名:
images/
banner.png
avatar.jpg
product/
cover.webp
这适合想快速批量压缩,又不想改变文件格式和目录结构的场景。
指定输出格式
默认保持原格式。如果传入 -f,会把所有支持的图片统一转成指定格式。
转成 WebP:
super-img-compress -i ./images -f webp
转成 JPG:
super-img-compress -i ./images -f jpg
转成 PNG:
super-img-compress -i ./images -f png
支持的输出格式:
webp
jpeg
jpg
png
注意:转换格式且没有指定 -o 时,会在原文件夹中生成新格式文件,并删除原格式文件。
缩放尺寸
只限制宽度,高度自动按比例计算:
super-img-compress -i ./images --width 1600
只限制高度,宽度自动按比例计算:
super-img-compress -i ./images --height 900
同时限制宽高,默认保持比例,图片会被限制在指定范围内:
super-img-compress -i ./images --width 1600 --height 900
如果需要强制输出固定宽高,可以关闭保留比例:
super-img-compress -i ./images --width 800 --height 600 --no-keep-aspect
强制宽高可能导致图片被拉伸或压扁,请谨慎使用。
输出目录
默认不需要指定输出目录,CLI 会直接替换原文件。
如果不想修改原文件,可以指定 -o:
super-img-compress -i ./images -o ./dist
指定输出目录时,会保留相对目录结构:
images/
a.png
nested/
b.jpg
dist/
a.png
nested/
b.jpg
指定输出目录并转成 WebP:
super-img-compress -i ./images -o ./dist -f webp
参数说明
| 参数 | 说明 |
|---|---|
-i, --input <path> |
输入路径,可以是单张图片或图片文件夹。 |
-o, --output <dir> |
输出目录;不传时原地替换。 |
-q, --quality <number> |
压缩质量,范围 1-100,默认 80。 |
-f, --format <format> |
输出格式,可选 webp、jpeg、jpg、png;不传时保持原格式。 |
--width <px> |
限制输出宽度。 |
--height <px> |
限制输出高度。 |
--no-keep-aspect |
不保留原图比例,强制使用指定宽高。 |
常用示例
原地压缩文件夹,保持原格式,质量 80:
super-img-compress -i ./images
原地压缩文件夹,质量 70:
super-img-compress -i ./images -q 70
原地压缩并统一转成 WebP:
super-img-compress -i ./images -f webp -q 75
压缩并限制最大宽度:
super-img-compress -i ./images --width 1600
输出到新目录,不修改原文件:
super-img-compress -i ./images -o ./dist
压缩单张图片并转 WebP:
super-img-compress -i ./photo.jpg -f webp -q 80
注意事项
- 默认会直接修改原文件,第一次使用前建议先备份。
- 当前支持输入 JPG、PNG、WebP、TIF、TIFF。
- 当前支持输出 JPG、PNG、WebP。
- 当前不支持 AVIF。
- 非图片文件会被跳过。
- 透明 PNG 转 JPG 时,透明区域可能被填充。