Commit bd2b500c by Johann Jeannelle

init an await on each folder

parent 342c493c
/node_modules /node_modules
.idea/ /assets
\ No newline at end of file .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) {
console.log('minify from ' + srcDir + ' to ' + destinationDir);
for (let [key, value] of Object.entries(data)) {
imagemin([srcDir + '/**/*.{jpg,png}'], {
replaceOutputDir: output => { console.log(`${Number(value.length)} files`);
return output.replace(srcDir, destinationDir);
}, await imagemin([key + '/*.{jpg,png}'], {
plugins: [ destination: output + (key.replace(input,"")),
imageminMozjpeg({ plugins: [
quality: 70 imageminMozjpeg({
}), quality: 70
imageminPngquant({ }),
quality: [0.6, 0.8] imageminPngquant({
}) quality: [0.5, 0.6]
] })
}).then(files =>{ ]
files.forEach(file=>{ });
console.log(file.path);
}); console.log(`🛂 minify ---> ${key} to ${output + (key.replace(input,""))}` );
}); }
\ No newline at end of file
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