I have following webpack.config.js file, from this configuration I managed to compress all images which are consumed from css files.
But I also want to compress all images which I'm copying into dist folder.
const CopyPlugin = require("copy-webpack-plugin");
module.exports = {
module: {
rules: [
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
},
{
test: /\.(gif|png|jpe?g|svg)$/i,
use: [
'file-loader',
{
loader: 'image-webpack-loader',
options: {
mozjpeg: {
progressive: true,
},
// optipng.enabled: false will disable optipng
optipng: {
enabled: false,
},
pngquant: {
quality: [0.65, 0.90],
speed: 4
},
gifsicle: {
interlaced: false,
},
// the webp option will enable WEBP
webp: {
quality: 75
}
}
},
],
}
],
},
plugins: [
// copying static assets to dist directory, i want these images to be compressed as well
new CopyPlugin({
patterns: [{
from: "source/images",
to: "images"
}
],
})
]};
How can I achieve this in webpack 5?
I saw this nice article (https://web.dev/codelab-imagemin-webpack/) explaining how this can be achieved but as it seems imagemin-webpack-plugin is not updated recently.