图片压缩工程化

31 阅读1分钟

image.png

选用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密钥

image.png

每个月前500张是免费的,超过后开始收费; 如果我们想全部使用免费的,就需要注册尽可能多的账号;查询每个账号剩余的额度; 官方提供了tinify.compressionCount可以获取压缩计数;

为了更安全,我们可以将api密钥存储在数据库中,通过服务获取; 启用服务时需要考虑几个点:

  • 每个密钥当月最多可使用500张,那么使用后,剩余多少?
  • 下次使用哪一个密钥?怎么查询最优最快;
  • 以及接口查询如何保证安全密钥不被泄漏?
  • ……