I am trying to optimize images with grunt's imagemin module.
My directory structure looks in the following way:
Inside of each of the folders 1..N there are files. All of them are .jpg
What I want to achieve is to try to optimize all of them and to change them with newer versions (with the same name). I started with an easier task to optimize them and to copy to another folder (publicImages
) preserving the same structure.
Looking in the documentation I came up with the following piece of JSON:
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'publicImg/',
src: ['*.jpg'],
dest: 'publicImages/'
}]
}
}
which tells me Minified 0 images (saved 0 B)
, I tried to use **/*jpg
, **/*.{jpg}
but still with the same effect. How can it be done properly?
Next config fully working for me. Tested on your described environment.
package.json:
{
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-imagemin": "^0.7.1"
}
}
Gruntfile.js:
module.exports = function (grunt) {
grunt.initConfig({
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'publicImg/',
src: ['**/*.jpg'],
dest: 'publicImages/'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.registerTask('default', ['imagemin']);
};
Output:
raiden@toluca:~/projects/test$ tree publicImg/
publicImg/
├── main
└── upload
├── folder1
│ ├── 2499085-metal-gear-solid-5-exteded-e3.jpg
│ └── url.htm
├── folder2
│ └── metal-gear-solid-5-ground-zeroes-collectibles.jpg
└── folder3
├── 2574364-8751006069-14019.jpg
├── Metal-Gear-Solid-5-The-Phantom-Pain-Trailer.jpg
└── Metal_Gear_Solid_V_Screenshot.jpg
5 directories, 6 files
raiden@toluca:~/projects/test$ grunt
Running "imagemin:dynamic" (imagemin) task
✔ publicImg/upload/folder1/2499085-metal-gear-solid-5-exteded-e3.jpg (saved 8.99 kB - 7%)
✔ publicImg/upload/folder2/metal-gear-solid-5-ground-zeroes-collectibles.jpg (saved 8.5 kB - 25%)
✔ publicImg/upload/folder3/2574364-8751006069-14019.jpg (already optimized)
✔ publicImg/upload/folder3/Metal-Gear-Solid-5-The-Phantom-Pain-Trailer.jpg (saved 2.22 kB - 3%)
✔ publicImg/upload/folder3/Metal_Gear_Solid_V_Screenshot.jpg (already optimized)
Minified 5 images (saved 19.71 kB)
Done, without errors.
raiden@toluca:~/projects/test$ tree publicImages/
publicImages/
└── upload
├── folder1
│ └── 2499085-metal-gear-solid-5-exteded-e3.jpg
├── folder2
│ └── metal-gear-solid-5-ground-zeroes-collectibles.jpg
└── folder3
├── 2574364-8751006069-14019.jpg
├── Metal-Gear-Solid-5-The-Phantom-Pain-Trailer.jpg
└── Metal_Gear_Solid_V_Screenshot.jpg
4 directories, 5 files
Maybe you have problem with your grunt-contrib-imagemin installation. Try to do npm rebuild grunt-contrib-imagemin
and see if there is any errors. Or update module by npm update grunt-contrib-imagemin
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With