Basic Configuration
webpack.config.js
Optimization Options
Enable/disable minification.Default:
true in production mode, false otherwiseCustomized minifier plugins.Use
'...' to extend default minimizers:Algorithm for module IDs.
'natural': Numeric IDs in order of usage'named': Readable IDs for debugging'deterministic': Short numeric hash IDs for caching'size': Numeric IDs focused on minimal bundle sizefalse: Custom algorithm via plugin
'deterministic' in production, 'named' in developmentAlgorithm for chunk IDs.
'deterministic': Short numeric hash IDs (recommended for caching)'named': Readable IDs for debugging'size': IDs focused on minimal initial download'total-size': IDs focused on minimal total download
'deterministic' in production, 'named' in developmentCode Splitting
Configure chunk splitting behavior.Set to
false to disable splitting.Split Chunks Options
Basic Split Chunks Options
Basic Split Chunks Options
Which chunks to optimize.
Minimum size (in bytes) for a chunk to be generated.Default:
20000Maximum size hint for chunks.
Minimum times a module must be shared before splitting.Default:
1Maximum number of parallel requests for on-demand loading.Default:
30Maximum number of parallel requests at entry point.Default:
30Cache Groups
Cache Groups
Define custom chunk groups.
test: Condition to match modulesname: Name of the split chunkpriority: Priority when a module matches multiple groupsreuseExistingChunk: Reuse existing chunk if availableenforce: Create chunk even if it violates size limits
Runtime Chunk
Extract runtime code into a separate chunk.Default:
falseTree Shaking
Detect and mark unused exports.Default:
true in productionDetermine exports for each module.Default:
trueSkip modules without side effects.Default:
true in productionModule Concatenation
Safely concatenate modules into a single module (scope hoisting).Default:
true in productionEnable inner module graph analysis for better tree shaking.Default:
true in productionOther Optimizations
Export Mangling
Export Mangling
Rename exports to shorter names.Default:
'deterministic' in productionWebAssembly
WebAssembly
Reduce WASM size by renaming imports.Default:
falseChunk Optimization
Chunk Optimization
Remove modules already available in parent chunks.Default:
true in productionRemove empty chunks.Default:
trueMerge chunks with identical modules.Default:
trueFlag chunks as loaded when they contain all modules from another chunk.Default:
true in productionError Handling
Error Handling
Emit assets even when errors occur.Default:
falseContent Hashing
Content Hashing
Use real content hash instead of build-time hash.Default:
true in productionOther Options
Other Options
Common Patterns
Production Optimization
webpack.config.js
Vendor Code Splitting
webpack.config.js
CSS Splitting
webpack.config.js
Development Optimization
webpack.config.js
Size-Optimized Build
webpack.config.js