基于tinify对图片进行批量压缩(三) 简易版

80 阅读1分钟
const tinify = require('tinify');
const fs = require('fs');
const path = require('path');
tinify.key = 'VzjzXnvLyZncGtY4HzQFKlXst26mP68G';
let imgsPath = path.join(__dirname,'5-9');
let tinifyImgsPath = path.join(__dirname,'tempImg');
​
if (!fs.existsSync(tinifyImgsPath)) {
    fs.mkdirSync(tinifyImgsPath);
}
​
​
delDir(tinifyImgsPath)
fs.mkdirSync(tinifyImgsPath)
​
async function delDir(path) {
    let files = [];
    if (fs.existsSync(path)) {
        files = fs.readdirSync(path);
        files.forEach((file, index) => {
            let curPath = path + "/" + file;
            if (fs.statSync(curPath).isDirectory()) {
                delDir(curPath); //递归删除文件夹
            } else {
                fs.unlinkSync(curPath); //删除文件
            }
        });
        fs.rmdirSync(path);  // 删除文件夹自身
        console.log('删除done!');
    }
}
​
fs.readdir(imgsPath,(err,files)=>{
    if (!err) {
        files.forEach((fileName,index)=>{
            if (/.(gif|jpg|jpeg|png|GIF|JPG|PNG|pdf|PDF)$/.test(fileName)) {
                tinify.fromFile(path.join(imgsPath, fileName))
                    .toFile(path.join(tinifyImgsPath, fileName))
                    .then(() => {
                        console.log('tinify ok:%s', fileName);
                    })
                    .catch((err) => {
                        console.log('tinify err:%s', err);
                    });
            }
        })
    }
});