Webpack5 how to minimize copying assets such as images

Viewed 42

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.

0 Answers
Related