Minify images using imagemin
npm install --save-dev grunt-contrib-imagemin
const mozjpeg = require('imagemin-mozjpeg');
grunt.initConfig({
imagemin: {
static: {
options: {
optimizationLevel: 3,
svgoPlugins: [{removeViewBox: false}],
use: [mozjpeg()] // Example plugin usage
},
files: {
'dist/img.png': 'src/img.png',
'dist/img.jpg': 'src/img.jpg',
'dist/img.gif': 'src/img.gif'
}
},
dynamic: {
files: [{
expand: true,
cwd: 'src/',
src: ['**/*.{png,jpg,gif}'],
dest: 'dist/'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.registerTask('default', ['imagemin']);
number
3
Select optimization level between 0
and 7
.
The optimization level 0 enables a set of optimization operations that require minimal effort. There will be no changes to image attributes like bit depth or color type, and no recompression of existing IDAT datastreams. The optimization level 1 enables a single IDAT compression trial. The trial chosen is what OptiPNG thinks it’s probably the most effective. The optimization levels 2 and higher enable multiple IDAT compression trials; the higher the level, the more trials.
Level and trials:
boolean
true
Lossless conversion to progressive.
boolean
true
Interlace gif for progressive rendering.
Type: Array
Customize which SVGO plugins to use. More here.
Array
[imagemin.gifsicle(), imagemin.jpegtran(), imagemin.optipng(), imagemin.svgo()]
Plugins to use with imagemin. It comes bundled with the following lossless optimizers:
These are bundled for convenience and most users will not need anything else.
number
os.cpus().length
Control the maximum number of image optimizations that may be performed in parallel.
MIT © Sindre Sorhus