@sammwy/milkshake
Version:
<p align="center"> <img src="https://raw.githubusercontent.com/sammwyy/milkshake/master/docs/milkshake.png" height="64px"> <h1 align="center">MilkShake</h1> <p align="center"> <b>Automatize Tasks, Compile, concatenate and minify automaticall
37 lines (33 loc) • 1.02 kB
JavaScript
const fs = require("fs");
const imagemin = require('imagemin');
const imageminJpegtran = require('imagemin-jpegtran');
const imageminPngquant = require('imagemin-pngquant');
exports.compressImage = async (directory, target) => {
const files = await imagemin([directory + "/*.{jpg,png}"], {
destination: target,
plugins: [
imageminJpegtran({
progressive: true
}),
imageminPngquant({
quality: [0.6, 0.8]
})
]
});
return saveBuffersToFile(files);
}
function saveBuffersToFile (list) {
return new Promise ((resolve, reject) => {
let count = 0;
for (let item of list) {
let path = item.destinationPath;
let buffer = item.data;
fs.writeFile(path, buffer, () => {
count++;
if (count == list.length) {
resolve();
}
});
}
})
}