UNPKG

minify-pic-cli

Version:

一个简单易用的图片批量压缩命令行工具,支持 PNG、JPEG、GIF 格式,适合前端和设计师快速优化图片体积。

150 lines (109 loc) 3.67 kB
# Minify Pic CLI - 图片批量压缩工具 一个简单易用的图片批量压缩命令行工具,支持 PNG、JPEG、GIF 格式,适合前端和设计师快速优化图片体积。 ## 功能特性 - 🖼️ 支持多种图片格式:PNG、JPEG、GIF - 📁 批量处理目录及子目录中的所有图片 - ⚙️ 可自定义压缩质量和参数 - 🚫 支持排除指定目录 - 📊 显示压缩前后文件大小对比 - 🎯 保持原有目录结构 ## 安装 ### 全局安装 ```bash # 使用 pnpm 安装 pnpm install -g minify-pic-cli # 或使用 npm npm install -g minify-pic-cli ``` ## 使用方法 ### 基本用法 ```bash # 压缩当前目录的所有图片 mpic # 或直接运行 node index.js ``` ### 命令行选项 ```bash mpic [选项] 选项: -d, --dir <dir> 需要压缩的目录 (默认: 当前目录) -o, --output <output> 输出目录 (默认: ./output) -q, --quality <quality> 压缩质量 0-100 (默认: 80) -g, --gif-colours <colours> GIF调色板最大数量 2-256 (默认: 128) -b, --black-dirs <dirs> 排除的子文件夹名称,逗号分隔 (默认: "no") -v, --version 显示版本号 -h, --help 显示帮助信息 ``` ### 使用示例 ```bash # 压缩指定目录的图片,输出到 compressed 文件夹 mpic -d ./images -o ./compressed # 设置压缩质量为 90 mpic -q 90 # 排除 node_modules 和 .git 目录 mpic -b "node_modules,.git" # 设置 GIF 调色板为 64 色 mpic -g 64 # 组合使用多个选项 mpic -d ./src/assets -o ./dist/assets -q 85 -b "node_modules,.git" ``` ## 支持的图片格式 - **PNG**: 支持透明度,适合图标和简单图形 - **JPEG**: 适合照片和复杂图像 - **GIF**: 支持动画,可调整调色板颜色数量 ## 配置说明 ### 压缩质量 (quality) - 范围:0-100 - 默认:80 - 数值越高,质量越好,文件越大 - 建议:80-90 为最佳平衡点 ### GIF 调色板颜色数 (gif-colours) - 范围:2-256 - 默认:128 - 颜色数越少,文件越小,但可能影响视觉效果 - 建议:64-128 为常用范围 ### 排除目录 (black-dirs) - 支持多个目录,用逗号分隔 - 默认排除 "no" 目录 - 常用排除目录:`node_modules,.git,dist,build` ## 输出说明 工具会在控制台显示: - 当前工作目录 - 压缩进度和结果 - 文件大小变化对比 - 最终输出目录 示例输出: ``` 当前目录路径为: /path/to/your/project 是否需要压缩当前目录的所有图片?Y/N:y 压缩完成 [大小变化: 2.5MB ---->>>> 1.2MB] /path/to/output/image1.jpg 压缩完成 [大小变化: 800KB ---->>>> 400KB] /path/to/output/image2.png 压缩任务全部完成,已输出至 /path/to/output ``` ## 注意事项 1. **备份原文件**:工具会创建新的压缩文件,不会覆盖原文件 2. **输出目录**:默认输出到 `./output` 目录,会自动创建 3. **目录结构**:压缩后会保持原有的目录结构 4. **大文件处理**:对于大文件,压缩可能需要一些时间 5. **权限问题**:确保对目标目录有写入权限 ## 技术栈 - **Node.js**: 运行环境 - **Sharp**: 高性能图片处理库 - **Commander.js**: 命令行参数解析 - **Readline**: 用户交互 ## 开发 ```bash # 安装依赖 pnpm install # 运行开发版本 node index.js ``` ## 许可证 ISC ## 更新日志 ### v1.0.2 - 初始版本发布 - 支持 PNG、JPEG、GIF 格式压缩 - 命令行参数支持 - 批量处理功能