Lesson 13 / 25

Debugging and source maps

Debug bundled code effectively.

Why source maps matter

Bundled and minified code is hard to debug. Source maps map bundled code back to original source files, line-by-line. Browser dev tools use source maps to show you original code, not minified code. Enable in development, consider disabling in production.

Enable source maps

Configure devtool for different environments.

module.exports = {
  devtool: process.env.NODE_ENV === 'production' 
    ? 'source-map' 
    : 'eval-source-map',
  // source-map: separate file, slower build, best quality
  // eval-source-map: eval, faster build, good quality
  // false: no source map
};

Output:

Source maps generated based on environment

Choose devtool wisely

Development: 'eval-source-map' for speed. Production: 'source-map' for debugging uploaded bundles, but upload to monitoring service, not browser. Or use 'hidden-source-map' to generate maps without exposing them.

Quick check

Quick check: What do source maps provide?

  • Mapping from bundled code back to original sources.
  • Compression of JavaScript files.
  • Security protection for code.
Answer

Mapping from bundled code back to original sources. — Source maps enable debugging by mapping minified/bundled code back to original source files for readability.