Lesson 16 / 25

Minification and compression

Reduce bundle size with minification.

Size reduction techniques

Minification removes unnecessary characters without changing functionality: whitespace, comments, long variable names. Compression (gzip, brotli) is applied by servers. Webpack production mode uses TerserPlugin for JS minification and CssMinimizerPlugin for CSS. These run automatically in production mode.

Configure minifiers

Customize minification settings for optimization.

const TerserPlugin = require('terser-webpack-plugin');
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');

module.exports = {
  optimization: {
    minimize: true,
    minimizer: [
      new TerserPlugin({ terserOptions: { compress: true } }),
      new CssMinimizerPlugin()
    ]
  }
};

Output:

Bundles minified and optimized for production

Balance speed vs size

Aggressive minification increases build time. For large projects, consider parallel minification. Server-side gzip/brotli compression is essential; modern servers apply it automatically for .js and .css files.

Quick check

Quick check: What is minification?

  • Removing unnecessary characters while preserving functionality.
  • Making code harder to understand.
  • Splitting bundles into smaller pieces.
Answer

Removing unnecessary characters while preserving functionality. — Minification reduces file size by removing whitespace, comments, and shortening variable names without changing what the code does.