Lesson 13 / 25
Debugging and source maps
Debug bundled code with Webpack source maps, and pick the right devtool setting for development and production.
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?
- Compression of JavaScript files.
- Mapping from bundled code back to original sources.
- Security protection for code.
- Automatic bug fixing at runtime.
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.