Commit bd2b500c by Johann Jeannelle

init an await on each folder

parent 342c493c
/node_modules
.idea/
\ No newline at end of file
/assets
.idea/
.DS_Store
\ No newline at end of file
#!/usr/bin/node
const imagemin = require('imagemin-keep-folder');
const imagemin = require("imagemin");
const imageminPngquant = require('imagemin-pngquant');
const imageminMozjpeg = require('imagemin-mozjpeg');
if (process.argv.length !== 4) {
console.log('Usage: minify [source directory] [destination directory]');
return;
var fs = require('fs');
var data_ = {}
// Change value here for now ------------------
var input = './assets/cat';
var output = './assets/output';
// ------------------
console.log('✅ - Minify from ' + input + ' to ' + output);
getFiles(input);
function getFiles(dir, files_) {
files_ = files_ || [];
var files = fs.readdirSync(dir);
for (var i in files) {
var name = dir + '/' + files[i];
if (fs.statSync(name).isDirectory()) {
getFiles(name, files_);
} else {
if (~name.indexOf('.png') || ~name.indexOf('.jpg') || ~name.indexOf('.jpeg') || ~name.indexOf('.JPG')) {
if (!data_.hasOwnProperty(dir)) {
data_[dir] = [files[i]];
} else {
data_[dir].push(files[i]);
}
}
}
}
}
const srcDir = process.argv[2];
const destinationDir = process.argv[3];
console.log('minify from ' + srcDir + ' to ' + destinationDir);
imagemin([srcDir + '/**/*.{jpg,png}'], {
replaceOutputDir: output => {
return output.replace(srcDir, destinationDir);
},
plugins: [
imageminMozjpeg({
quality: 70
}),
imageminPngquant({
quality: [0.6, 0.8]
})
]
}).then(files =>{
files.forEach(file=>{
console.log(file.path);
});
});
\ No newline at end of file
asyncCall(data_);
async function asyncCall(data) {
for (let [key, value] of Object.entries(data)) {
console.log(`${Number(value.length)} files`);
await imagemin([key + '/*.{jpg,png}'], {
destination: output + (key.replace(input,"")),
plugins: [
imageminMozjpeg({
quality: 70
}),
imageminPngquant({
quality: [0.5, 0.6]
})
]
});
console.log(`🛂 minify ---> ${key} to ${output + (key.replace(input,""))}` );
}
console.log(`✅ done`);
}
{
"name": "imagemin",
"name": "imageminifier",
"version": "1.0.0",
"description": "",
"main": "index.js",
......@@ -13,6 +13,7 @@
"author": "",
"license": "ISC",
"dependencies": {
"imagemin": "^7.0.1",
"imagemin-keep-folder": "^5.3.2",
"imagemin-mozjpeg": "^8.0.0",
"imagemin-pngquant": "^8.0.0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment