Lesson 6 / 25

Configuration and modes

Fine-tune Webpack with configuration options.

Development vs production

Development mode disables optimizations for readability and fast rebuild times. Sourcemaps are generated. Production mode enables code minification, tree-shaking, and scope hoisting. Choose mode based on your current task. You can override settings per environment.

Environment-based configuration

Use environment variables to switch configurations.

module.exports = (env, argv) => {
  const isDev = argv.mode === 'development';
  
  return {
    mode: argv.mode || 'production',
    devtool: isDev ? 'source-map' : false,
    optimization: {
      minimize: !isDev,
      usedExports: true
    }
  };
};

Output:

Configuration adjusts based on build mode parameter

Sourcemaps for debugging

Enable sourcemaps in development with 'source-map' or 'eval-source-map'. Sourcemaps map bundled code back to original sources for easier debugging. Disable in production to keep bundle size small.

Quick check

Quick check: When should you use production mode?

  • For final deployments to minimize bundle size.
  • During development for fast rebuilds.
  • To enable better debugging.
Answer

For final deployments to minimize bundle size. — Production mode optimizes for size and performance, making bundles suitable for deployment. Development mode prioritizes rebuild speed and debugging.