Commit bd2b500c by Johann Jeannelle

init an await on each folder

parent 342c493c
/node_modules /node_modules
/assets
.idea/ .idea/
.DS_Store
\ No newline at end of file
#!/usr/bin/node const imagemin = require("imagemin");
const imagemin = require('imagemin-keep-folder');
const imageminPngquant = require('imagemin-pngquant'); const imageminPngquant = require('imagemin-pngquant');
const imageminMozjpeg = require('imagemin-mozjpeg'); const imageminMozjpeg = require('imagemin-mozjpeg');
if (process.argv.length !== 4) { var fs = require('fs');
console.log('Usage: minify [source directory] [destination directory]');
return; 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]; asyncCall(data_);
const destinationDir = process.argv[3];
async function asyncCall(data) {
for (let [key, value] of Object.entries(data)) {
console.log('minify from ' + srcDir + ' to ' + destinationDir); console.log(`${Number(value.length)} files`);
imagemin([srcDir + '/**/*.{jpg,png}'], { await imagemin([key + '/*.{jpg,png}'], {
replaceOutputDir: output => { destination: output + (key.replace(input,"")),
return output.replace(srcDir, destinationDir);
},
plugins: [ plugins: [
imageminMozjpeg({ imageminMozjpeg({
quality: 70 quality: 70
}), }),
imageminPngquant({ imageminPngquant({
quality: [0.6, 0.8] quality: [0.5, 0.6]
}) })
] ]
}).then(files =>{
files.forEach(file=>{
console.log(file.path);
}); });
});
\ No newline at end of file console.log(`🛂 minify ---> ${key} to ${output + (key.replace(input,""))}` );
}
console.log(`✅ done`);
}
{ {
"name": "imagemin", "name": "imageminifier",
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"imagemin": "^7.0.1",
"imagemin-keep-folder": "^5.3.2", "imagemin-keep-folder": "^5.3.2",
"imagemin-mozjpeg": "^8.0.0", "imagemin-mozjpeg": "^8.0.0",
"imagemin-pngquant": "^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