选用tinypng插件 压缩图片核心代码
const tinify = require("tinify");
tinify.key = "YOUR_API_KEY"; // api密钥
const source = tinify.fromFile("unoptimized.webp"); // 压缩图片
source.toFile("optimized.webp"); // 图片写入文件
获取变更文件
const { execSync } = require('child_process');
function getChangeFiles() {
String(execSync('git status -s'))
.split('\n')
.filter(item => item.charAt(1) !== 'D') // 过滤掉首字母为 'D' 的项
.map(item => item.slice(2).trim()); // 获取空格后的文件路径
}
这里api密钥可以通过姓名和邮件地址注册来获得API密钥
每个月前500张是免费的,超过后开始收费; 如果我们想全部使用免费的,就需要注册尽可能多的账号;查询每个账号剩余的额度; 官方提供了tinify.compressionCount
可以获取压缩计数;
为了更安全,我们可以将api密钥存储在数据库中,通过服务获取; 启用服务时需要考虑几个点:
- 每个密钥当月最多可使用500张,那么使用后,剩余多少?
- 下次使用哪一个密钥?怎么查询最优最快;
- 以及接口查询如何保证安全密钥不被泄漏?
- ……