-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.html
361 lines (360 loc) · 125 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
<!DOCTYPE html><html lang="en" data-reactroot=""><head><meta charset="utf-8"/><meta name="theme-color" content="#2B3A42"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Optimization | webpack</title><meta name="description" content="webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset."/><meta property="og:site_name" content="webpack"/><meta property="og:type" content="website"/><meta property="og:title" content="Optimization | webpack"/><meta property="og:description" name="description" content="webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset."/><meta property="og:image" content="/aad9d51e01a0dcc2caf5bee43dc8e647.svg"/><meta property="twitter:card" content="summary"/><meta property="twitter:site" content="@webpack"/><meta property="twitter:creator" content="@webpack"/><meta property="twitter:domain" content="https://webpack.js.org/"/><link rel="icon" type="image/x-icon" href="/bc3effb418df77da9e04825c48a58a49.ico"/><link rel="stylesheet" href="/c3bdf2a06d9967301c16.css"/><link rel="stylesheet" href="/00b4b8424f4141301d82.css"/><link rel="manifest" href="/manifest.json"/><link rel="canonical" href="https://webpack.js.org/configuration/optimization/"/><meta name="mobile-web-app-capable" content="yes"/><link rel="icon" sizes="192x192" href="/icon_192x192.png"/><link rel="icon" sizes="512x512" href="/icon_512x512.png"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black"/><meta name="apple-mobile-web-app-title" content="webpack"/><link rel="apple-touch-icon-precomposed" href="/icon_180x180.png"/><link rel="mask-icon" href="/aad9d51e01a0dcc2caf5bee43dc8e647.svg" color="#465e69"/><meta name="msapplication-TileImage" content="/icon_150x150.png"/><meta name="msapplication-TileColor" content="#465e69"/></head><body><div id="root"><div class="site"><div class="site__header"><div class="notification-bar"><div class="container notification-bar__inner"><p>Sponsor webpack and get apparel from the <a href="https://webpack.threadless.com">official shop</a>! All proceeds go to our <a href="https://opencollective.com/webpack">open collective</a>!</p></div></div><header class="navigation "><section class="navigation__inner"><button aria-label="Open menu" class="navigation__mobile"><svg viewBox="-62 138 25 25"><g><g><path d="M-60.2,140.2h20.9c1,0,1.8,0.8,1.8,1.8l0,0c0,1-0.8,1.8-1.8,1.8h-20.9c-1,0-1.8-0.8-1.8-1.8l0,0 C-62,141-61.2,140.2-60.2,140.2z"></path><path d="M-60.2,148.7h20.9c1,0,1.8,0.8,1.8,1.8l0,0c0,1-0.8,1.8-1.8,1.8h-20.9c-1,0-1.8-0.8-1.8-1.8l0,0 C-62,149.5-61.2,148.7-60.2,148.7z"></path><path d="M-60.2,157.2h20.9c1,0,1.8,0.8,1.8,1.8l0,0c0,1-0.8,1.8-1.8,1.8h-20.9c-1,0-1.8-0.8-1.8-1.8l0,0 C-62,158-61.2,157.2-60.2,157.2z"></path></g></g></svg></button><a class="navigation__logo" href="/"><img class="logo" src="/e0b5805d423a4ec9473ee315250968b2.svg" alt="webpack logo"/></a><nav class="navigation__items"><a class="navigation__item navigation__item--active" href="/concepts/">Documentation</a><a class="navigation__item " href="/contribute/">Contribute</a><a class="navigation__item " href="/vote/">Vote</a><a href="https://medium.com/webpack" target="_blank" rel="noopener" class="navigation__item ">Blog</a><a href="https://github.com/webpack/webpack" target="_blank" rel="noopener" title="GitHub Repository" class="navigation__item navigation__item--icon "><i aria-hidden="true" class="icon-github"></i></a><a href="https://twitter.com/webpack" target="_blank" rel="noopener" title="webpack on Twitter" class="navigation__item navigation__item--icon "><i aria-hidden="true" class="icon-twitter"></i></a><a href="https://stackoverflow.com/questions/tagged/webpack" target="_blank" rel="noopener" title="webpack on Stack Overflow" class="navigation__item navigation__item--icon "><i aria-hidden="true" class="icon-stack-overflow"></i></a><span class="navigation__item navigation__item--icon"><nav class="dropdown navigation__languages"><button aria-haspopup="true" aria-expanded="false" aria-label="Select language"><img class="dropdown__language" alt="select language" src="/57c717e75066b659cfe19dc2a643153c.svg"/><i aria-hidden="true" class="dropdown__arrow"></i></button><div class="dropdown__list "><ul><li><a href="https://webpack.js.org/"><span>English</span></a></li><li><a href="https://webpack.docschina.org/"><span lang="zh">中文</span></a></li></ul></div></nav></span></nav><div class="navigation-search "><input type="text" class="navigation-search__input" placeholder="Search this site..." value=""/><button aria-label="Hide search box" class="navigation-search__icon navigation-search__clear"><svg viewBox="-137 138 25 25"><g transform="translate(0,-952.36218)"><path d="M-131.3,1094.4c-0.4,0-0.9,0.1-1.2,0.5c-0.7,0.7-0.7,1.7,0,2.4l5.6,5.6l-5.6,5.6c-0.7,0.7-0.7,1.7,0,2.4 c0.7,0.7,1.7,0.7,2.4,0l5.6-5.6l5.6,5.6c0.7,0.7,1.7,0.7,2.4,0c0.7-0.7,0.7-1.7,0-2.4l-5.6-5.6l5.6-5.6c0.7-0.7,0.7-1.7,0-2.4 c-0.7-0.7-1.7-0.7-2.4,0l-5.6,5.6l-5.6-5.6C-130.5,1094.5-130.9,1094.4-131.3,1094.4L-131.3,1094.4z"></path></g></svg></button><button aria-label="Show search box" class="navigation-search__icon navigation-search__search"><svg viewBox="-137 138 25 25"><g><path d="M-114.6,162.6l-7.5-7.5c-0.6-0.6-0.6-1.6,0-2.1l0,0c0.6-0.6,1.6-0.6,2.1,0l7.5,7.5c0.6,0.6,0.6,1.6,0,2.1l0,0 C-113,163.1-114,163.1-114.6,162.6z"></path><path d="M-134.1,140.9c-3.9,3.9-3.9,10.2,0,14.1s10.2,3.9,14.1,0s3.9-10.2,0-14.1S-130.2,137-134.1,140.9z M-122.1,153 c-2.7,2.7-7.1,2.7-9.8,0s-2.7-7.1,0-9.8s7.1-2.7,9.8,0C-119.4,145.9-119.4,150.2-122.1,153z"></path></g></svg></button></div></section><div class="navigation-sub"><div class="navigation-sub__inner"><a class="navigation-sub__link " title="api" content="api" href="/api/">api</a><a class="navigation-sub__link " title="blog" content="blog" href="/blog/">blog</a><a class="navigation-sub__link " title="concepts" content="concepts" href="/concepts/">concepts</a><a class="navigation-sub__link navigation-sub__link--active" title="configuration" content="configuration" href="/configuration/">configuration</a><a class="navigation-sub__link " title="guides" content="guides" href="/guides/">guides</a><a class="navigation-sub__link " title="loaders" content="loaders" href="/loaders/">loaders</a><a class="navigation-sub__link " title="migrate" content="migrate" href="/migrate/">migrate</a><a class="navigation-sub__link " title="plugins" content="plugins" href="/plugins/">plugins</a></div></div></header></div><div class="container site__content"><div class="sponsors"><a href="https://www.ag-grid.com/?utm_source=webpack&utm_medium=banner&utm_campaign=sponsorship" target="_blank" rel="noopener" class="sponsors__content"><img src="/bf176a25b4f8227fea804854c98dc5e2.png"/><img src="/d19378a95ebe6b15d5ddea281138dcf4.svg" style="width:100px"/><div style="margin-top:1em;font-size:2em;text-align:center;color:#535353">ag-grid is proud to partner with webpack</div></a></div><nav class="sidebar site__sidebar"><div class="sidebar__inner"><div class="relative z-0 bg-white dark:bg-gray-100 "><select class="text-gray-600 text-14 px-5 py-5 appearance-none box-border border border-gray-200 border-solid flex-col flex w-full rounded-none bg-transparent bg-none"><option value="5">Webpack 5</option><option selected="" value="4">Webpack 4</option></select><img src="/33e97d95c634809004ee2830b6297e89.svg" class="absolute right-5 top-5 fill-current text-gray-300 z-[-1]" width="20" height="20"/></div><div class="sidebar-item sidebar-item--disabled`"><i class="sidebar-item__toggle icon-vertical-bar"></i><a class="sidebar-item__title sidebar-link__print" href="/configuration/printable/" rel="nofollow" alt="Print" title="Print" target="_blank">Print Section<img src="/96ccbfac58b65e83657a220603e00abe.svg"/></a></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/">Configuration</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="Use different config file"><a href="/configuration/#use-different-config-file">Use different config file</a></li><li class="sidebar-item__anchor" title="Options"><a href="/configuration/#options">Options</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/configuration-languages/">Configuration Languages</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="TypeScript"><a href="/configuration/configuration-languages/#typescript">TypeScript</a></li><li class="sidebar-item__anchor" title="CoffeeScript"><a href="/configuration/configuration-languages/#coffeescript">CoffeeScript</a></li><li class="sidebar-item__anchor" title="Babel and JSX"><a href="/configuration/configuration-languages/#babel-and-jsx">Babel and JSX</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/configuration-types/">Configuration Types</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="Exporting a Function"><a href="/configuration/configuration-types/#exporting-a-function">Exporting a Function</a></li><li class="sidebar-item__anchor" title="Exporting a Promise"><a href="/configuration/configuration-types/#exporting-a-promise">Exporting a Promise</a></li><li class="sidebar-item__anchor" title="Exporting multiple configurations"><a href="/configuration/configuration-types/#exporting-multiple-configurations">Exporting multiple configurations</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/entry-context/">Entry and Context</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="context"><a href="/configuration/entry-context/#context">context</a></li><li class="sidebar-item__anchor" title="entry"><a href="/configuration/entry-context/#entry">entry</a></li><li class="sidebar-item__anchor" title="Naming"><a href="/configuration/entry-context/#naming">Naming</a></li><li class="sidebar-item__anchor" title="Dynamic entry"><a href="/configuration/entry-context/#dynamic-entry">Dynamic entry</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/mode/">Mode</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="Usage"><a href="/configuration/mode/#usage">Usage</a></li><li class="sidebar-item__anchor" title="Mode: development"><a href="/configuration/mode/#mode-development">Mode: development</a></li><li class="sidebar-item__anchor" title="Mode: production"><a href="/configuration/mode/#mode-production">Mode: production</a></li><li class="sidebar-item__anchor" title="Mode: none"><a href="/configuration/mode/#mode-none">Mode: none</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/output/">Output</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="output.auxiliaryComment"><a href="/configuration/output/#outputauxiliarycomment">output.auxiliaryComment</a></li><li class="sidebar-item__anchor" title="output.chunkFilename"><a href="/configuration/output/#outputchunkfilename">output.chunkFilename</a></li><li class="sidebar-item__anchor" title="output.chunkLoadTimeout"><a href="/configuration/output/#outputchunkloadtimeout">output.chunkLoadTimeout</a></li><li class="sidebar-item__anchor" title="output.crossOriginLoading"><a href="/configuration/output/#outputcrossoriginloading">output.crossOriginLoading</a></li><li class="sidebar-item__anchor" title="output.jsonpScriptType"><a href="/configuration/output/#outputjsonpscripttype">output.jsonpScriptType</a></li><li class="sidebar-item__anchor" title="output.devtoolFallbackModuleFilenameTemplate"><a href="/configuration/output/#outputdevtoolfallbackmodulefilenametemplate">output.devtoolFallbackModuleFilenameTemplate</a></li><li class="sidebar-item__anchor" title="output.devtoolLineToLine"><a href="/configuration/output/#outputdevtoollinetoline">output.devtoolLineToLine</a></li><li class="sidebar-item__anchor" title="output.devtoolModuleFilenameTemplate"><a href="/configuration/output/#outputdevtoolmodulefilenametemplate">output.devtoolModuleFilenameTemplate</a></li><li class="sidebar-item__anchor" title="output.devtoolNamespace"><a href="/configuration/output/#outputdevtoolnamespace">output.devtoolNamespace</a></li><li class="sidebar-item__anchor" title="output.filename"><a href="/configuration/output/#outputfilename">output.filename</a></li><li class="sidebar-item__anchor" title="output.globalObject"><a href="/configuration/output/#outputglobalobject">output.globalObject</a></li><li class="sidebar-item__anchor" title="output.hashDigest"><a href="/configuration/output/#outputhashdigest">output.hashDigest</a></li><li class="sidebar-item__anchor" title="output.hashDigestLength"><a href="/configuration/output/#outputhashdigestlength">output.hashDigestLength</a></li><li class="sidebar-item__anchor" title="output.hashFunction"><a href="/configuration/output/#outputhashfunction">output.hashFunction</a></li><li class="sidebar-item__anchor" title="output.hashSalt"><a href="/configuration/output/#outputhashsalt">output.hashSalt</a></li><li class="sidebar-item__anchor" title="output.hotUpdateChunkFilename"><a href="/configuration/output/#outputhotupdatechunkfilename">output.hotUpdateChunkFilename</a></li><li class="sidebar-item__anchor" title="output.hotUpdateFunction"><a href="/configuration/output/#outputhotupdatefunction">output.hotUpdateFunction</a></li><li class="sidebar-item__anchor" title="output.hotUpdateMainFilename"><a href="/configuration/output/#outputhotupdatemainfilename">output.hotUpdateMainFilename</a></li><li class="sidebar-item__anchor" title="output.jsonpFunction"><a href="/configuration/output/#outputjsonpfunction">output.jsonpFunction</a></li><li class="sidebar-item__anchor" title="output.library"><a href="/configuration/output/#outputlibrary">output.library</a></li><li class="sidebar-item__anchor" title="output.libraryExport"><a href="/configuration/output/#outputlibraryexport">output.libraryExport</a></li><li class="sidebar-item__anchor" title="output.libraryTarget"><a href="/configuration/output/#outputlibrarytarget">output.libraryTarget</a></li><li class="sidebar-item__anchor" title="Expose a Variable"><a href="/configuration/output/#expose-a-variable">Expose a Variable</a></li><li class="sidebar-item__anchor" title="Expose Via Object Assignment"><a href="/configuration/output/#expose-via-object-assignment">Expose Via Object Assignment</a></li><li class="sidebar-item__anchor" title="Module Definition Systems"><a href="/configuration/output/#module-definition-systems">Module Definition Systems</a></li><li class="sidebar-item__anchor" title="Other Targets"><a href="/configuration/output/#other-targets">Other Targets</a></li><li class="sidebar-item__anchor" title="output.path"><a href="/configuration/output/#outputpath">output.path</a></li><li class="sidebar-item__anchor" title="output.pathinfo"><a href="/configuration/output/#outputpathinfo">output.pathinfo</a></li><li class="sidebar-item__anchor" title="output.publicPath"><a href="/configuration/output/#outputpublicpath">output.publicPath</a></li><li class="sidebar-item__anchor" title="output.sourceMapFilename"><a href="/configuration/output/#outputsourcemapfilename">output.sourceMapFilename</a></li><li class="sidebar-item__anchor" title="output.sourcePrefix"><a href="/configuration/output/#outputsourceprefix">output.sourcePrefix</a></li><li class="sidebar-item__anchor" title="output.strictModuleExceptionHandling"><a href="/configuration/output/#outputstrictmoduleexceptionhandling">output.strictModuleExceptionHandling</a></li><li class="sidebar-item__anchor" title="output.umdNamedDefine"><a href="/configuration/output/#outputumdnameddefine">output.umdNamedDefine</a></li><li class="sidebar-item__anchor" title="output.futureEmitAssets"><a href="/configuration/output/#outputfutureemitassets">output.futureEmitAssets</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/module/">Module</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="module.noParse"><a href="/configuration/module/#modulenoparse">module.noParse</a></li><li class="sidebar-item__anchor" title="module.rules"><a href="/configuration/module/#modulerules">module.rules</a></li><li class="sidebar-item__anchor" title="module.unsafeCache"><a href="/configuration/module/#moduleunsafecache">module.unsafeCache</a></li><li class="sidebar-item__anchor" title="Rule"><a href="/configuration/module/#rule">Rule</a></li><li class="sidebar-item__anchor" title="Rule Conditions"><a href="/configuration/module/#rule-conditions">Rule Conditions</a></li><li class="sidebar-item__anchor" title="Rule results"><a href="/configuration/module/#rule-results">Rule results</a></li><li class="sidebar-item__anchor" title="Nested rules"><a href="/configuration/module/#nested-rules">Nested rules</a></li><li class="sidebar-item__anchor" title="Rule.enforce"><a href="/configuration/module/#ruleenforce">Rule.enforce</a></li><li class="sidebar-item__anchor" title="Rule.exclude"><a href="/configuration/module/#ruleexclude">Rule.exclude</a></li><li class="sidebar-item__anchor" title="Rule.include"><a href="/configuration/module/#ruleinclude">Rule.include</a></li><li class="sidebar-item__anchor" title="Rule.issuer"><a href="/configuration/module/#ruleissuer">Rule.issuer</a></li><li class="sidebar-item__anchor" title="Rule.loader"><a href="/configuration/module/#ruleloader">Rule.loader</a></li><li class="sidebar-item__anchor" title="Rule.loaders"><a href="/configuration/module/#ruleloaders">Rule.loaders</a></li><li class="sidebar-item__anchor" title="Rule.oneOf"><a href="/configuration/module/#ruleoneof">Rule.oneOf</a></li><li class="sidebar-item__anchor" title="Rule.options"><a href="/configuration/module/#ruleoptions--rulequery">Rule.options</a></li><li class="sidebar-item__anchor" title="Rule.parser"><a href="/configuration/module/#ruleparser">Rule.parser</a></li><li class="sidebar-item__anchor" title="Rule.resource"><a href="/configuration/module/#ruleresource">Rule.resource</a></li><li class="sidebar-item__anchor" title="Rule.resourceQuery"><a href="/configuration/module/#ruleresourcequery">Rule.resourceQuery</a></li><li class="sidebar-item__anchor" title="Rule.rules"><a href="/configuration/module/#rulerules">Rule.rules</a></li><li class="sidebar-item__anchor" title="Rule.sideEffects"><a href="/configuration/module/#rulesideeffects">Rule.sideEffects</a></li><li class="sidebar-item__anchor" title="Rule.test"><a href="/configuration/module/#ruletest">Rule.test</a></li><li class="sidebar-item__anchor" title="Rule.type"><a href="/configuration/module/#ruletype">Rule.type</a></li><li class="sidebar-item__anchor" title="Rule.use"><a href="/configuration/module/#ruleuse">Rule.use</a></li><li class="sidebar-item__anchor" title="Rule.resolve"><a href="/configuration/module/#ruleresolve">Rule.resolve</a></li><li class="sidebar-item__anchor" title="Condition"><a href="/configuration/module/#condition">Condition</a></li><li class="sidebar-item__anchor" title="UseEntry"><a href="/configuration/module/#useentry">UseEntry</a></li><li class="sidebar-item__anchor" title="Module Contexts"><a href="/configuration/module/#module-contexts">Module Contexts</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/resolve/">Resolve</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="resolve"><a href="/configuration/resolve/#resolve">resolve</a></li><li class="sidebar-item__anchor" title="resolve.alias"><a href="/configuration/resolve/#resolvealias">resolve.alias</a></li><li class="sidebar-item__anchor" title="resolve.aliasFields"><a href="/configuration/resolve/#resolvealiasfields">resolve.aliasFields</a></li><li class="sidebar-item__anchor" title="resolve.cacheWithContext"><a href="/configuration/resolve/#resolvecachewithcontext">resolve.cacheWithContext</a></li><li class="sidebar-item__anchor" title="resolve.descriptionFiles"><a href="/configuration/resolve/#resolvedescriptionfiles">resolve.descriptionFiles</a></li><li class="sidebar-item__anchor" title="resolve.enforceExtension"><a href="/configuration/resolve/#resolveenforceextension">resolve.enforceExtension</a></li><li class="sidebar-item__anchor" title="resolve.enforceModuleExtension"><a href="/configuration/resolve/#resolveenforcemoduleextension">resolve.enforceModuleExtension</a></li><li class="sidebar-item__anchor" title="resolve.extensions"><a href="/configuration/resolve/#resolveextensions">resolve.extensions</a></li><li class="sidebar-item__anchor" title="resolve.mainFields"><a href="/configuration/resolve/#resolvemainfields">resolve.mainFields</a></li><li class="sidebar-item__anchor" title="resolve.mainFiles"><a href="/configuration/resolve/#resolvemainfiles">resolve.mainFiles</a></li><li class="sidebar-item__anchor" title="resolve.modules"><a href="/configuration/resolve/#resolvemodules">resolve.modules</a></li><li class="sidebar-item__anchor" title="resolve.unsafeCache"><a href="/configuration/resolve/#resolveunsafecache">resolve.unsafeCache</a></li><li class="sidebar-item__anchor" title="resolve.plugins"><a href="/configuration/resolve/#resolveplugins">resolve.plugins</a></li><li class="sidebar-item__anchor" title="resolve.symlinks"><a href="/configuration/resolve/#resolvesymlinks">resolve.symlinks</a></li><li class="sidebar-item__anchor" title="resolve.cachePredicate"><a href="/configuration/resolve/#resolvecachepredicate">resolve.cachePredicate</a></li><li class="sidebar-item__anchor" title="resolveLoader"><a href="/configuration/resolve/#resolveloader">resolveLoader</a></li><li class="sidebar-item__anchor" title="resolve.roots"><a href="/configuration/resolve/#resolveroots">resolve.roots</a></li><li class="sidebar-item__anchor" title="resolveLoader.moduleExtensions"><a href="/configuration/resolve/#resolveloadermoduleextensions">resolveLoader.moduleExtensions</a></li></ul></div></div><div><div class="sidebar-item sidebar-item--open "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/optimization/">Optimization</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="optimization.minimize"><a href="/configuration/optimization/#optimizationminimize">optimization.minimize</a></li><li class="sidebar-item__anchor" title="optimization.minimizer"><a href="/configuration/optimization/#optimizationminimizer">optimization.minimizer</a></li><li class="sidebar-item__anchor" title="optimization.splitChunks"><a href="/configuration/optimization/#optimizationsplitchunks">optimization.splitChunks</a></li><li class="sidebar-item__anchor" title="optimization.runtimeChunk"><a href="/configuration/optimization/#optimizationruntimechunk">optimization.runtimeChunk</a></li><li class="sidebar-item__anchor" title="optimization.noEmitOnErrors"><a href="/configuration/optimization/#optimizationnoemitonerrors">optimization.noEmitOnErrors</a></li><li class="sidebar-item__anchor" title="optimization.namedModules"><a href="/configuration/optimization/#optimizationnamedmodules">optimization.namedModules</a></li><li class="sidebar-item__anchor" title="optimization.namedChunks"><a href="/configuration/optimization/#optimizationnamedchunks">optimization.namedChunks</a></li><li class="sidebar-item__anchor" title="optimization.moduleIds"><a href="/configuration/optimization/#optimizationmoduleids">optimization.moduleIds</a></li><li class="sidebar-item__anchor" title="optimization.chunkIds"><a href="/configuration/optimization/#optimizationchunkids">optimization.chunkIds</a></li><li class="sidebar-item__anchor" title="optimization.nodeEnv"><a href="/configuration/optimization/#optimizationnodeenv">optimization.nodeEnv</a></li><li class="sidebar-item__anchor" title="optimization.mangleWasmImports"><a href="/configuration/optimization/#optimizationmanglewasmimports">optimization.mangleWasmImports</a></li><li class="sidebar-item__anchor" title="optimization.removeAvailableModules"><a href="/configuration/optimization/#optimizationremoveavailablemodules">optimization.removeAvailableModules</a></li><li class="sidebar-item__anchor" title="optimization.removeEmptyChunks"><a href="/configuration/optimization/#optimizationremoveemptychunks">optimization.removeEmptyChunks</a></li><li class="sidebar-item__anchor" title="optimization.mergeDuplicateChunks"><a href="/configuration/optimization/#optimizationmergeduplicatechunks">optimization.mergeDuplicateChunks</a></li><li class="sidebar-item__anchor" title="optimization.flagIncludedChunks"><a href="/configuration/optimization/#optimizationflagincludedchunks">optimization.flagIncludedChunks</a></li><li class="sidebar-item__anchor" title="optimization.occurrenceOrder"><a href="/configuration/optimization/#optimizationoccurrenceorder">optimization.occurrenceOrder</a></li><li class="sidebar-item__anchor" title="optimization.providedExports"><a href="/configuration/optimization/#optimizationprovidedexports">optimization.providedExports</a></li><li class="sidebar-item__anchor" title="optimization.usedExports"><a href="/configuration/optimization/#optimizationusedexports">optimization.usedExports</a></li><li class="sidebar-item__anchor" title="optimization.concatenateModules"><a href="/configuration/optimization/#optimizationconcatenatemodules">optimization.concatenateModules</a></li><li class="sidebar-item__anchor" title="optimization.sideEffects"><a href="/configuration/optimization/#optimizationsideeffects">optimization.sideEffects</a></li><li class="sidebar-item__anchor" title="optimization.portableRecords"><a href="/configuration/optimization/#optimizationportablerecords">optimization.portableRecords</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/plugins/">Plugins</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="plugins"><a href="/configuration/plugins/#plugins">plugins</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/dev-server/">DevServer</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="devServer"><a href="/configuration/dev-server/#devserver">devServer</a></li><li class="sidebar-item__anchor" title="devServer.after"><a href="/configuration/dev-server/#devserverafter">devServer.after</a></li><li class="sidebar-item__anchor" title="devServer.allowedHosts"><a href="/configuration/dev-server/#devserverallowedhosts">devServer.allowedHosts</a></li><li class="sidebar-item__anchor" title="devServer.before"><a href="/configuration/dev-server/#devserverbefore">devServer.before</a></li><li class="sidebar-item__anchor" title="devServer.bonjour"><a href="/configuration/dev-server/#devserverbonjour">devServer.bonjour</a></li><li class="sidebar-item__anchor" title="devServer.clientLogLevel"><a href="/configuration/dev-server/#devserverclientloglevel">devServer.clientLogLevel</a></li><li class="sidebar-item__anchor" title="devServer.color"><a href="/configuration/dev-server/#devservercolor---cli-only">devServer.color</a></li><li class="sidebar-item__anchor" title="devServer.compress"><a href="/configuration/dev-server/#devservercompress">devServer.compress</a></li><li class="sidebar-item__anchor" title="devServer.contentBase"><a href="/configuration/dev-server/#devservercontentbase">devServer.contentBase</a></li><li class="sidebar-item__anchor" title="devServer.disableHostCheck"><a href="/configuration/dev-server/#devserverdisablehostcheck">devServer.disableHostCheck</a></li><li class="sidebar-item__anchor" title="devServer.filename"><a href="/configuration/dev-server/#devserverfilename-">devServer.filename</a></li><li class="sidebar-item__anchor" title="devServer.headers"><a href="/configuration/dev-server/#devserverheaders-">devServer.headers</a></li><li class="sidebar-item__anchor" title="devServer.historyApiFallback"><a href="/configuration/dev-server/#devserverhistoryapifallback">devServer.historyApiFallback</a></li><li class="sidebar-item__anchor" title="devServer.host"><a href="/configuration/dev-server/#devserverhost">devServer.host</a></li><li class="sidebar-item__anchor" title="devServer.hot"><a href="/configuration/dev-server/#devserverhot">devServer.hot</a></li><li class="sidebar-item__anchor" title="devServer.hotOnly"><a href="/configuration/dev-server/#devserverhotonly">devServer.hotOnly</a></li><li class="sidebar-item__anchor" title="devServer.http2"><a href="/configuration/dev-server/#devserverhttp2">devServer.http2</a></li><li class="sidebar-item__anchor" title="devServer.https"><a href="/configuration/dev-server/#devserverhttps">devServer.https</a></li><li class="sidebar-item__anchor" title="devServer.index"><a href="/configuration/dev-server/#devserverindex">devServer.index</a></li><li class="sidebar-item__anchor" title="devServer.info"><a href="/configuration/dev-server/#devserverinfo---cli-only">devServer.info</a></li><li class="sidebar-item__anchor" title="devServer.injectClient"><a href="/configuration/dev-server/#devserverinjectclient">devServer.injectClient</a></li><li class="sidebar-item__anchor" title="devServer.injectHot"><a href="/configuration/dev-server/#devserverinjecthot">devServer.injectHot</a></li><li class="sidebar-item__anchor" title="devServer.inline"><a href="/configuration/dev-server/#devserverinline">devServer.inline</a></li><li class="sidebar-item__anchor" title="devServer.lazy"><a href="/configuration/dev-server/#devserverlazy-">devServer.lazy</a></li><li class="sidebar-item__anchor" title="devServer.liveReload"><a href="/configuration/dev-server/#devserverlivereload">devServer.liveReload</a></li><li class="sidebar-item__anchor" title="devServer.mimeTypes"><a href="/configuration/dev-server/#devservermimetypes-">devServer.mimeTypes</a></li><li class="sidebar-item__anchor" title="devServer.noInfo"><a href="/configuration/dev-server/#devservernoinfo-">devServer.noInfo</a></li><li class="sidebar-item__anchor" title="devServer.onListening"><a href="/configuration/dev-server/#devserveronlistening">devServer.onListening</a></li><li class="sidebar-item__anchor" title="devServer.open"><a href="/configuration/dev-server/#devserveropen">devServer.open</a></li><li class="sidebar-item__anchor" title="devServer.openPage"><a href="/configuration/dev-server/#devserveropenpage">devServer.openPage</a></li><li class="sidebar-item__anchor" title="devServer.overlay"><a href="/configuration/dev-server/#devserveroverlay">devServer.overlay</a></li><li class="sidebar-item__anchor" title="devServer.pfx"><a href="/configuration/dev-server/#devserverpfx">devServer.pfx</a></li><li class="sidebar-item__anchor" title="devServer.pfxPassphrase"><a href="/configuration/dev-server/#devserverpfxpassphrase">devServer.pfxPassphrase</a></li><li class="sidebar-item__anchor" title="devServer.port"><a href="/configuration/dev-server/#devserverport">devServer.port</a></li><li class="sidebar-item__anchor" title="devServer.proxy"><a href="/configuration/dev-server/#devserverproxy">devServer.proxy</a></li><li class="sidebar-item__anchor" title="devServer.progress"><a href="/configuration/dev-server/#devserverprogress---cli-only">devServer.progress</a></li><li class="sidebar-item__anchor" title="devServer.public"><a href="/configuration/dev-server/#devserverpublic">devServer.public</a></li><li class="sidebar-item__anchor" title="devServer.publicPath"><a href="/configuration/dev-server/#devserverpublicpath-">devServer.publicPath</a></li><li class="sidebar-item__anchor" title="devServer.quiet"><a href="/configuration/dev-server/#devserverquiet-">devServer.quiet</a></li><li class="sidebar-item__anchor" title="devServer.serveIndex"><a href="/configuration/dev-server/#devserverserveindex">devServer.serveIndex</a></li><li class="sidebar-item__anchor" title="devServer.setup"><a href="/configuration/dev-server/#devserversetup">devServer.setup</a></li><li class="sidebar-item__anchor" title="devServer.socket"><a href="/configuration/dev-server/#devserversocket">devServer.socket</a></li><li class="sidebar-item__anchor" title="devServer.sockHost"><a href="/configuration/dev-server/#devserversockhost">devServer.sockHost</a></li><li class="sidebar-item__anchor" title="devServer.sockPath"><a href="/configuration/dev-server/#devserversockpath">devServer.sockPath</a></li><li class="sidebar-item__anchor" title="devServer.sockPort"><a href="/configuration/dev-server/#devserversockport">devServer.sockPort</a></li><li class="sidebar-item__anchor" title="devServer.staticOptions"><a href="/configuration/dev-server/#devserverstaticoptions">devServer.staticOptions</a></li><li class="sidebar-item__anchor" title="devServer.stats"><a href="/configuration/dev-server/#devserverstats-">devServer.stats</a></li><li class="sidebar-item__anchor" title="devServer.stdin"><a href="/configuration/dev-server/#devserverstdin---cli-only">devServer.stdin</a></li><li class="sidebar-item__anchor" title="devServer.transportMode"><a href="/configuration/dev-server/#devservertransportmode">devServer.transportMode</a></li><li class="sidebar-item__anchor" title="devServer.transportMode.client"><a href="/configuration/dev-server/#devservertransportmodeclient">devServer.transportMode.client</a></li><li class="sidebar-item__anchor" title="devServer.transportMode.server"><a href="/configuration/dev-server/#devservertransportmodeserver">devServer.transportMode.server</a></li><li class="sidebar-item__anchor" title="devServer.useLocalIp"><a href="/configuration/dev-server/#devserveruselocalip">devServer.useLocalIp</a></li><li class="sidebar-item__anchor" title="devServer.watchContentBase"><a href="/configuration/dev-server/#devserverwatchcontentbase">devServer.watchContentBase</a></li><li class="sidebar-item__anchor" title="devServer.watchOptions"><a href="/configuration/dev-server/#devserverwatchoptions-">devServer.watchOptions</a></li><li class="sidebar-item__anchor" title="devServer.writeToDisk"><a href="/configuration/dev-server/#devserverwritetodisk-">devServer.writeToDisk</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/devtool/">Devtool</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="devtool"><a href="/configuration/devtool/#devtool">devtool</a></li><li class="sidebar-item__anchor" title="Qualities"><a href="/configuration/devtool/#qualities">Qualities</a></li><li class="sidebar-item__anchor" title="Development"><a href="/configuration/devtool/#development">Development</a></li><li class="sidebar-item__anchor" title="Special cases"><a href="/configuration/devtool/#special-cases">Special cases</a></li><li class="sidebar-item__anchor" title="Production"><a href="/configuration/devtool/#production">Production</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/target/">Target</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="target"><a href="/configuration/target/#target">target</a></li><li class="sidebar-item__anchor" title="string"><a href="/configuration/target/#string">string</a></li><li class="sidebar-item__anchor" title="function"><a href="/configuration/target/#function">function</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/watch/">Watch and WatchOptions</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="watch"><a href="/configuration/watch/#watch">watch</a></li><li class="sidebar-item__anchor" title="watchOptions"><a href="/configuration/watch/#watchoptions">watchOptions</a></li><li class="sidebar-item__anchor" title="watchOptions.aggregateTimeout"><a href="/configuration/watch/#watchoptionsaggregatetimeout">watchOptions.aggregateTimeout</a></li><li class="sidebar-item__anchor" title="watchOptions.ignored"><a href="/configuration/watch/#watchoptionsignored">watchOptions.ignored</a></li><li class="sidebar-item__anchor" title="watchOptions.poll"><a href="/configuration/watch/#watchoptionspoll">watchOptions.poll</a></li><li class="sidebar-item__anchor" title="info-verbosity"><a href="/configuration/watch/#info-verbosity">info-verbosity</a></li><li class="sidebar-item__anchor" title="Troubleshooting"><a href="/configuration/watch/#troubleshooting">Troubleshooting</a></li><li class="sidebar-item__anchor" title="Changes Seen But Not Processed"><a href="/configuration/watch/#changes-seen-but-not-processed">Changes Seen But Not Processed</a></li><li class="sidebar-item__anchor" title="Not Enough Watchers"><a href="/configuration/watch/#not-enough-watchers">Not Enough Watchers</a></li><li class="sidebar-item__anchor" title="macOS fsevents Bug"><a href="/configuration/watch/#macos-fsevents-bug">macOS fsevents Bug</a></li><li class="sidebar-item__anchor" title="Windows Paths"><a href="/configuration/watch/#windows-paths">Windows Paths</a></li><li class="sidebar-item__anchor" title="Vim"><a href="/configuration/watch/#vim">Vim</a></li><li class="sidebar-item__anchor" title="Saving in WebStorm"><a href="/configuration/watch/#saving-in-webstorm">Saving in WebStorm</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/externals/">Externals</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="externals"><a href="/configuration/externals/#externals">externals</a></li><li class="sidebar-item__anchor" title="string"><a href="/configuration/externals/#string">string</a></li><li class="sidebar-item__anchor" title="array"><a href="/configuration/externals/#array">array</a></li><li class="sidebar-item__anchor" title="object"><a href="/configuration/externals/#object">object</a></li><li class="sidebar-item__anchor" title="function"><a href="/configuration/externals/#function">function</a></li><li class="sidebar-item__anchor" title="regex"><a href="/configuration/externals/#regex">regex</a></li><li class="sidebar-item__anchor" title="Combining syntaxes"><a href="/configuration/externals/#combining-syntaxes">Combining syntaxes</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/performance/">Performance</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="performance"><a href="/configuration/performance/#performance">performance</a></li><li class="sidebar-item__anchor" title="performance.hints"><a href="/configuration/performance/#performancehints">performance.hints</a></li><li class="sidebar-item__anchor" title="performance.maxEntrypointSize"><a href="/configuration/performance/#performancemaxentrypointsize">performance.maxEntrypointSize</a></li><li class="sidebar-item__anchor" title="performance.maxAssetSize"><a href="/configuration/performance/#performancemaxassetsize">performance.maxAssetSize</a></li><li class="sidebar-item__anchor" title="performance.assetFilter"><a href="/configuration/performance/#performanceassetfilter">performance.assetFilter</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/node/">Node</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="node"><a href="/configuration/node/#node">node</a></li><li class="sidebar-item__anchor" title="node.console"><a href="/configuration/node/#nodeconsole">node.console</a></li><li class="sidebar-item__anchor" title="node.process"><a href="/configuration/node/#nodeprocess">node.process</a></li><li class="sidebar-item__anchor" title="node.global"><a href="/configuration/node/#nodeglobal">node.global</a></li><li class="sidebar-item__anchor" title="node.__filename"><a href="/configuration/node/#node__filename">node.__filename</a></li><li class="sidebar-item__anchor" title="node.__dirname"><a href="/configuration/node/#node__dirname">node.__dirname</a></li><li class="sidebar-item__anchor" title="node.Buffer"><a href="/configuration/node/#nodebuffer">node.Buffer</a></li><li class="sidebar-item__anchor" title="node.setImmediate"><a href="/configuration/node/#nodesetimmediate">node.setImmediate</a></li><li class="sidebar-item__anchor" title="Other node core libraries"><a href="/configuration/node/#other-node-core-libraries">Other node core libraries</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/stats/">Stats</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="stats"><a href="/configuration/stats/#stats">stats</a></li><li class="sidebar-item__anchor" title="stats.all"><a href="/configuration/stats/#statsall">stats.all</a></li><li class="sidebar-item__anchor" title="stats.assets"><a href="/configuration/stats/#statsassets">stats.assets</a></li><li class="sidebar-item__anchor" title="stats.assetsSort"><a href="/configuration/stats/#statsassetssort">stats.assetsSort</a></li><li class="sidebar-item__anchor" title="stats.builtAt"><a href="/configuration/stats/#statsbuiltat">stats.builtAt</a></li><li class="sidebar-item__anchor" title="stats.cached"><a href="/configuration/stats/#statscached">stats.cached</a></li><li class="sidebar-item__anchor" title="stats.cachedAssets"><a href="/configuration/stats/#statscachedassets">stats.cachedAssets</a></li><li class="sidebar-item__anchor" title="stats.children"><a href="/configuration/stats/#statschildren">stats.children</a></li><li class="sidebar-item__anchor" title="stats.chunks"><a href="/configuration/stats/#statschunks">stats.chunks</a></li><li class="sidebar-item__anchor" title="stats.chunkGroups"><a href="/configuration/stats/#statschunkgroups">stats.chunkGroups</a></li><li class="sidebar-item__anchor" title="stats.chunkModules"><a href="/configuration/stats/#statschunkmodules">stats.chunkModules</a></li><li class="sidebar-item__anchor" title="stats.chunkOrigins"><a href="/configuration/stats/#statschunkorigins">stats.chunkOrigins</a></li><li class="sidebar-item__anchor" title="stats.chunksSort"><a href="/configuration/stats/#statschunkssort">stats.chunksSort</a></li><li class="sidebar-item__anchor" title="stats.context"><a href="/configuration/stats/#statscontext">stats.context</a></li><li class="sidebar-item__anchor" title="stats.colors"><a href="/configuration/stats/#statscolors">stats.colors</a></li><li class="sidebar-item__anchor" title="stats.depth"><a href="/configuration/stats/#statsdepth">stats.depth</a></li><li class="sidebar-item__anchor" title="stats.entrypoints"><a href="/configuration/stats/#statsentrypoints">stats.entrypoints</a></li><li class="sidebar-item__anchor" title="stats.env"><a href="/configuration/stats/#statsenv">stats.env</a></li><li class="sidebar-item__anchor" title="stats.errors"><a href="/configuration/stats/#statserrors">stats.errors</a></li><li class="sidebar-item__anchor" title="stats.errorDetails"><a href="/configuration/stats/#statserrordetails">stats.errorDetails</a></li><li class="sidebar-item__anchor" title="stats.excludeAssets"><a href="/configuration/stats/#statsexcludeassets">stats.excludeAssets</a></li><li class="sidebar-item__anchor" title="stats.excludeModules"><a href="/configuration/stats/#statsexcludemodules">stats.excludeModules</a></li><li class="sidebar-item__anchor" title="stats.exclude"><a href="/configuration/stats/#statsexclude">stats.exclude</a></li><li class="sidebar-item__anchor" title="stats.hash"><a href="/configuration/stats/#statshash">stats.hash</a></li><li class="sidebar-item__anchor" title="stats.logging"><a href="/configuration/stats/#statslogging">stats.logging</a></li><li class="sidebar-item__anchor" title="stats.loggingDebug"><a href="/configuration/stats/#statsloggingdebug">stats.loggingDebug</a></li><li class="sidebar-item__anchor" title="stats.loggingTrace"><a href="/configuration/stats/#statsloggingtrace">stats.loggingTrace</a></li><li class="sidebar-item__anchor" title="stats.maxModules"><a href="/configuration/stats/#statsmaxmodules">stats.maxModules</a></li><li class="sidebar-item__anchor" title="stats.modules"><a href="/configuration/stats/#statsmodules">stats.modules</a></li><li class="sidebar-item__anchor" title="stats.modulesSort"><a href="/configuration/stats/#statsmodulessort">stats.modulesSort</a></li><li class="sidebar-item__anchor" title="stats.moduleTrace"><a href="/configuration/stats/#statsmoduletrace">stats.moduleTrace</a></li><li class="sidebar-item__anchor" title="stats.outputPath"><a href="/configuration/stats/#statsoutputpath">stats.outputPath</a></li><li class="sidebar-item__anchor" title="stats.performance"><a href="/configuration/stats/#statsperformance">stats.performance</a></li><li class="sidebar-item__anchor" title="stats.providedExports"><a href="/configuration/stats/#statsprovidedexports">stats.providedExports</a></li><li class="sidebar-item__anchor" title="stats.publicPath"><a href="/configuration/stats/#statspublicpath">stats.publicPath</a></li><li class="sidebar-item__anchor" title="stats.reasons"><a href="/configuration/stats/#statsreasons">stats.reasons</a></li><li class="sidebar-item__anchor" title="stats.source"><a href="/configuration/stats/#statssource">stats.source</a></li><li class="sidebar-item__anchor" title="stats.timings"><a href="/configuration/stats/#statstimings">stats.timings</a></li><li class="sidebar-item__anchor" title="stats.usedExports"><a href="/configuration/stats/#statsusedexports">stats.usedExports</a></li><li class="sidebar-item__anchor" title="stats.version"><a href="/configuration/stats/#statsversion">stats.version</a></li><li class="sidebar-item__anchor" title="stats.warnings"><a href="/configuration/stats/#statswarnings">stats.warnings</a></li><li class="sidebar-item__anchor" title="stats.warningsFilter"><a href="/configuration/stats/#statswarningsfilter">stats.warningsFilter</a></li><li class="sidebar-item__anchor" title="Sorting fields"><a href="/configuration/stats/#sorting-fields">Sorting fields</a></li><li class="sidebar-item__anchor" title="Extending stats behaviours"><a href="/configuration/stats/#extending-stats-behaviours">Extending stats behaviours</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/other-options/">Other Options</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="amd"><a href="/configuration/other-options/#amd">amd</a></li><li class="sidebar-item__anchor" title="bail"><a href="/configuration/other-options/#bail">bail</a></li><li class="sidebar-item__anchor" title="cache"><a href="/configuration/other-options/#cache">cache</a></li><li class="sidebar-item__anchor" title="loader"><a href="/configuration/other-options/#loader">loader</a></li><li class="sidebar-item__anchor" title="parallelism"><a href="/configuration/other-options/#parallelism">parallelism</a></li><li class="sidebar-item__anchor" title="profile"><a href="/configuration/other-options/#profile">profile</a></li><li class="sidebar-item__anchor" title="recordsPath"><a href="/configuration/other-options/#recordspath">recordsPath</a></li><li class="sidebar-item__anchor" title="recordsInputPath"><a href="/configuration/other-options/#recordsinputpath">recordsInputPath</a></li><li class="sidebar-item__anchor" title="recordsOutputPath"><a href="/configuration/other-options/#recordsoutputpath">recordsOutputPath</a></li><li class="sidebar-item__anchor" title="name"><a href="/configuration/other-options/#name">name</a></li><li class="sidebar-item__anchor" title="infrastructureLogging"><a href="/configuration/other-options/#infrastructurelogging">infrastructureLogging</a></li><li class="sidebar-item__anchor" title="infrastructureLogging.level"><a href="/configuration/other-options/#infrastructurelogginglevel">infrastructureLogging.level</a></li><li class="sidebar-item__anchor" title="infrastructureLogging.debug"><a href="/configuration/other-options/#infrastructureloggingdebug">infrastructureLogging.debug</a></li></ul></div></div><div><div class="sidebar-item "><i class="sidebar-item__toggle icon-chevron-right"></i><a class="sidebar-item__title" href="/configuration/printable/">Printable</a><ul class="sidebar-item__anchors"><li class="sidebar-item__anchor" title="Configuration"><a href="/configuration/printable/#configuration">Configuration</a></li><li class="sidebar-item__anchor" title="Use different config file"><a href="/configuration/printable/#use-different-config-file">Use different config file</a></li><li class="sidebar-item__anchor" title="Options"><a href="/configuration/printable/#options">Options</a></li><li class="sidebar-item__anchor" title="Configuration Languages"><a href="/configuration/printable/#configuration-languages">Configuration Languages</a></li><li class="sidebar-item__anchor" title="TypeScript"><a href="/configuration/printable/#typescript">TypeScript</a></li><li class="sidebar-item__anchor" title="CoffeeScript"><a href="/configuration/printable/#coffeescript">CoffeeScript</a></li><li class="sidebar-item__anchor" title="Babel and JSX"><a href="/configuration/printable/#babel-and-jsx">Babel and JSX</a></li><li class="sidebar-item__anchor" title="Configuration Types"><a href="/configuration/printable/#configuration-types">Configuration Types</a></li><li class="sidebar-item__anchor" title="Exporting a Function"><a href="/configuration/printable/#exporting-a-function">Exporting a Function</a></li><li class="sidebar-item__anchor" title="Exporting a Promise"><a href="/configuration/printable/#exporting-a-promise">Exporting a Promise</a></li><li class="sidebar-item__anchor" title="Exporting multiple configurations"><a href="/configuration/printable/#exporting-multiple-configurations">Exporting multiple configurations</a></li><li class="sidebar-item__anchor" title="Entry and Context"><a href="/configuration/printable/#entry-and-context">Entry and Context</a></li><li class="sidebar-item__anchor" title="context"><a href="/configuration/printable/#context">context</a></li><li class="sidebar-item__anchor" title="entry"><a href="/configuration/printable/#entry">entry</a></li><li class="sidebar-item__anchor" title="Naming"><a href="/configuration/printable/#naming">Naming</a></li><li class="sidebar-item__anchor" title="Dynamic entry"><a href="/configuration/printable/#dynamic-entry">Dynamic entry</a></li><li class="sidebar-item__anchor" title="Mode"><a href="/configuration/printable/#mode">Mode</a></li><li class="sidebar-item__anchor" title="Usage"><a href="/configuration/printable/#usage">Usage</a></li><li class="sidebar-item__anchor" title="Mode: development"><a href="/configuration/printable/#mode-development">Mode: development</a></li><li class="sidebar-item__anchor" title="Mode: production"><a href="/configuration/printable/#mode-production">Mode: production</a></li><li class="sidebar-item__anchor" title="Mode: none"><a href="/configuration/printable/#mode-none">Mode: none</a></li><li class="sidebar-item__anchor" title="Output"><a href="/configuration/printable/#output">Output</a></li><li class="sidebar-item__anchor" title="output.auxiliaryComment"><a href="/configuration/printable/#outputauxiliarycomment">output.auxiliaryComment</a></li><li class="sidebar-item__anchor" title="output.chunkFilename"><a href="/configuration/printable/#outputchunkfilename">output.chunkFilename</a></li><li class="sidebar-item__anchor" title="output.chunkLoadTimeout"><a href="/configuration/printable/#outputchunkloadtimeout">output.chunkLoadTimeout</a></li><li class="sidebar-item__anchor" title="output.crossOriginLoading"><a href="/configuration/printable/#outputcrossoriginloading">output.crossOriginLoading</a></li><li class="sidebar-item__anchor" title="output.jsonpScriptType"><a href="/configuration/printable/#outputjsonpscripttype">output.jsonpScriptType</a></li><li class="sidebar-item__anchor" title="output.devtoolFallbackModuleFilenameTemplate"><a href="/configuration/printable/#outputdevtoolfallbackmodulefilenametemplate">output.devtoolFallbackModuleFilenameTemplate</a></li><li class="sidebar-item__anchor" title="output.devtoolLineToLine"><a href="/configuration/printable/#outputdevtoollinetoline">output.devtoolLineToLine</a></li><li class="sidebar-item__anchor" title="output.devtoolModuleFilenameTemplate"><a href="/configuration/printable/#outputdevtoolmodulefilenametemplate">output.devtoolModuleFilenameTemplate</a></li><li class="sidebar-item__anchor" title="output.devtoolNamespace"><a href="/configuration/printable/#outputdevtoolnamespace">output.devtoolNamespace</a></li><li class="sidebar-item__anchor" title="output.filename"><a href="/configuration/printable/#outputfilename">output.filename</a></li><li class="sidebar-item__anchor" title="output.globalObject"><a href="/configuration/printable/#outputglobalobject">output.globalObject</a></li><li class="sidebar-item__anchor" title="output.hashDigest"><a href="/configuration/printable/#outputhashdigest">output.hashDigest</a></li><li class="sidebar-item__anchor" title="output.hashDigestLength"><a href="/configuration/printable/#outputhashdigestlength">output.hashDigestLength</a></li><li class="sidebar-item__anchor" title="output.hashFunction"><a href="/configuration/printable/#outputhashfunction">output.hashFunction</a></li><li class="sidebar-item__anchor" title="output.hashSalt"><a href="/configuration/printable/#outputhashsalt">output.hashSalt</a></li><li class="sidebar-item__anchor" title="output.hotUpdateChunkFilename"><a href="/configuration/printable/#outputhotupdatechunkfilename">output.hotUpdateChunkFilename</a></li><li class="sidebar-item__anchor" title="output.hotUpdateFunction"><a href="/configuration/printable/#outputhotupdatefunction">output.hotUpdateFunction</a></li><li class="sidebar-item__anchor" title="output.hotUpdateMainFilename"><a href="/configuration/printable/#outputhotupdatemainfilename">output.hotUpdateMainFilename</a></li><li class="sidebar-item__anchor" title="output.jsonpFunction"><a href="/configuration/printable/#outputjsonpfunction">output.jsonpFunction</a></li><li class="sidebar-item__anchor" title="output.library"><a href="/configuration/printable/#outputlibrary">output.library</a></li><li class="sidebar-item__anchor" title="output.libraryExport"><a href="/configuration/printable/#outputlibraryexport">output.libraryExport</a></li><li class="sidebar-item__anchor" title="output.libraryTarget"><a href="/configuration/printable/#outputlibrarytarget">output.libraryTarget</a></li><li class="sidebar-item__anchor" title="Expose a Variable"><a href="/configuration/printable/#expose-a-variable">Expose a Variable</a></li><li class="sidebar-item__anchor" title="Expose Via Object Assignment"><a href="/configuration/printable/#expose-via-object-assignment">Expose Via Object Assignment</a></li><li class="sidebar-item__anchor" title="Module Definition Systems"><a href="/configuration/printable/#module-definition-systems">Module Definition Systems</a></li><li class="sidebar-item__anchor" title="Other Targets"><a href="/configuration/printable/#other-targets">Other Targets</a></li><li class="sidebar-item__anchor" title="output.path"><a href="/configuration/printable/#outputpath">output.path</a></li><li class="sidebar-item__anchor" title="output.pathinfo"><a href="/configuration/printable/#outputpathinfo">output.pathinfo</a></li><li class="sidebar-item__anchor" title="output.publicPath"><a href="/configuration/printable/#outputpublicpath">output.publicPath</a></li><li class="sidebar-item__anchor" title="output.sourceMapFilename"><a href="/configuration/printable/#outputsourcemapfilename">output.sourceMapFilename</a></li><li class="sidebar-item__anchor" title="output.sourcePrefix"><a href="/configuration/printable/#outputsourceprefix">output.sourcePrefix</a></li><li class="sidebar-item__anchor" title="output.strictModuleExceptionHandling"><a href="/configuration/printable/#outputstrictmoduleexceptionhandling">output.strictModuleExceptionHandling</a></li><li class="sidebar-item__anchor" title="output.umdNamedDefine"><a href="/configuration/printable/#outputumdnameddefine">output.umdNamedDefine</a></li><li class="sidebar-item__anchor" title="output.futureEmitAssets"><a href="/configuration/printable/#outputfutureemitassets">output.futureEmitAssets</a></li><li class="sidebar-item__anchor" title="Module"><a href="/configuration/printable/#module">Module</a></li><li class="sidebar-item__anchor" title="module.noParse"><a href="/configuration/printable/#modulenoparse">module.noParse</a></li><li class="sidebar-item__anchor" title="module.rules"><a href="/configuration/printable/#modulerules">module.rules</a></li><li class="sidebar-item__anchor" title="module.unsafeCache"><a href="/configuration/printable/#moduleunsafecache">module.unsafeCache</a></li><li class="sidebar-item__anchor" title="Rule"><a href="/configuration/printable/#rule">Rule</a></li><li class="sidebar-item__anchor" title="Rule Conditions"><a href="/configuration/printable/#rule-conditions">Rule Conditions</a></li><li class="sidebar-item__anchor" title="Rule results"><a href="/configuration/printable/#rule-results">Rule results</a></li><li class="sidebar-item__anchor" title="Nested rules"><a href="/configuration/printable/#nested-rules">Nested rules</a></li><li class="sidebar-item__anchor" title="Rule.enforce"><a href="/configuration/printable/#ruleenforce">Rule.enforce</a></li><li class="sidebar-item__anchor" title="Rule.exclude"><a href="/configuration/printable/#ruleexclude">Rule.exclude</a></li><li class="sidebar-item__anchor" title="Rule.include"><a href="/configuration/printable/#ruleinclude">Rule.include</a></li><li class="sidebar-item__anchor" title="Rule.issuer"><a href="/configuration/printable/#ruleissuer">Rule.issuer</a></li><li class="sidebar-item__anchor" title="Rule.loader"><a href="/configuration/printable/#ruleloader">Rule.loader</a></li><li class="sidebar-item__anchor" title="Rule.loaders"><a href="/configuration/printable/#ruleloaders">Rule.loaders</a></li><li class="sidebar-item__anchor" title="Rule.oneOf"><a href="/configuration/printable/#ruleoneof">Rule.oneOf</a></li><li class="sidebar-item__anchor" title="Rule.options"><a href="/configuration/printable/#ruleoptions--rulequery">Rule.options</a></li><li class="sidebar-item__anchor" title="Rule.parser"><a href="/configuration/printable/#ruleparser">Rule.parser</a></li><li class="sidebar-item__anchor" title="Rule.resource"><a href="/configuration/printable/#ruleresource">Rule.resource</a></li><li class="sidebar-item__anchor" title="Rule.resourceQuery"><a href="/configuration/printable/#ruleresourcequery">Rule.resourceQuery</a></li><li class="sidebar-item__anchor" title="Rule.rules"><a href="/configuration/printable/#rulerules">Rule.rules</a></li><li class="sidebar-item__anchor" title="Rule.sideEffects"><a href="/configuration/printable/#rulesideeffects">Rule.sideEffects</a></li><li class="sidebar-item__anchor" title="Rule.test"><a href="/configuration/printable/#ruletest">Rule.test</a></li><li class="sidebar-item__anchor" title="Rule.type"><a href="/configuration/printable/#ruletype">Rule.type</a></li><li class="sidebar-item__anchor" title="Rule.use"><a href="/configuration/printable/#ruleuse">Rule.use</a></li><li class="sidebar-item__anchor" title="Rule.resolve"><a href="/configuration/printable/#ruleresolve">Rule.resolve</a></li><li class="sidebar-item__anchor" title="Condition"><a href="/configuration/printable/#condition">Condition</a></li><li class="sidebar-item__anchor" title="UseEntry"><a href="/configuration/printable/#useentry">UseEntry</a></li><li class="sidebar-item__anchor" title="Module Contexts"><a href="/configuration/printable/#module-contexts">Module Contexts</a></li><li class="sidebar-item__anchor" title="Resolve"><a href="/configuration/printable/#resolve">Resolve</a></li><li class="sidebar-item__anchor" title="resolve"><a href="/configuration/printable/#resolve-1">resolve</a></li><li class="sidebar-item__anchor" title="resolve.alias"><a href="/configuration/printable/#resolvealias">resolve.alias</a></li><li class="sidebar-item__anchor" title="resolve.aliasFields"><a href="/configuration/printable/#resolvealiasfields">resolve.aliasFields</a></li><li class="sidebar-item__anchor" title="resolve.cacheWithContext"><a href="/configuration/printable/#resolvecachewithcontext">resolve.cacheWithContext</a></li><li class="sidebar-item__anchor" title="resolve.descriptionFiles"><a href="/configuration/printable/#resolvedescriptionfiles">resolve.descriptionFiles</a></li><li class="sidebar-item__anchor" title="resolve.enforceExtension"><a href="/configuration/printable/#resolveenforceextension">resolve.enforceExtension</a></li><li class="sidebar-item__anchor" title="resolve.enforceModuleExtension"><a href="/configuration/printable/#resolveenforcemoduleextension">resolve.enforceModuleExtension</a></li><li class="sidebar-item__anchor" title="resolve.extensions"><a href="/configuration/printable/#resolveextensions">resolve.extensions</a></li><li class="sidebar-item__anchor" title="resolve.mainFields"><a href="/configuration/printable/#resolvemainfields">resolve.mainFields</a></li><li class="sidebar-item__anchor" title="resolve.mainFiles"><a href="/configuration/printable/#resolvemainfiles">resolve.mainFiles</a></li><li class="sidebar-item__anchor" title="resolve.modules"><a href="/configuration/printable/#resolvemodules">resolve.modules</a></li><li class="sidebar-item__anchor" title="resolve.unsafeCache"><a href="/configuration/printable/#resolveunsafecache">resolve.unsafeCache</a></li><li class="sidebar-item__anchor" title="resolve.plugins"><a href="/configuration/printable/#resolveplugins">resolve.plugins</a></li><li class="sidebar-item__anchor" title="resolve.symlinks"><a href="/configuration/printable/#resolvesymlinks">resolve.symlinks</a></li><li class="sidebar-item__anchor" title="resolve.cachePredicate"><a href="/configuration/printable/#resolvecachepredicate">resolve.cachePredicate</a></li><li class="sidebar-item__anchor" title="resolveLoader"><a href="/configuration/printable/#resolveloader">resolveLoader</a></li><li class="sidebar-item__anchor" title="resolve.roots"><a href="/configuration/printable/#resolveroots">resolve.roots</a></li><li class="sidebar-item__anchor" title="resolveLoader.moduleExtensions"><a href="/configuration/printable/#resolveloadermoduleextensions">resolveLoader.moduleExtensions</a></li><li class="sidebar-item__anchor" title="Optimization"><a href="/configuration/printable/#optimization">Optimization</a></li><li class="sidebar-item__anchor" title="optimization.minimize"><a href="/configuration/printable/#optimizationminimize">optimization.minimize</a></li><li class="sidebar-item__anchor" title="optimization.minimizer"><a href="/configuration/printable/#optimizationminimizer">optimization.minimizer</a></li><li class="sidebar-item__anchor" title="optimization.splitChunks"><a href="/configuration/printable/#optimizationsplitchunks">optimization.splitChunks</a></li><li class="sidebar-item__anchor" title="optimization.runtimeChunk"><a href="/configuration/printable/#optimizationruntimechunk">optimization.runtimeChunk</a></li><li class="sidebar-item__anchor" title="optimization.noEmitOnErrors"><a href="/configuration/printable/#optimizationnoemitonerrors">optimization.noEmitOnErrors</a></li><li class="sidebar-item__anchor" title="optimization.namedModules"><a href="/configuration/printable/#optimizationnamedmodules">optimization.namedModules</a></li><li class="sidebar-item__anchor" title="optimization.namedChunks"><a href="/configuration/printable/#optimizationnamedchunks">optimization.namedChunks</a></li><li class="sidebar-item__anchor" title="optimization.moduleIds"><a href="/configuration/printable/#optimizationmoduleids">optimization.moduleIds</a></li><li class="sidebar-item__anchor" title="optimization.chunkIds"><a href="/configuration/printable/#optimizationchunkids">optimization.chunkIds</a></li><li class="sidebar-item__anchor" title="optimization.nodeEnv"><a href="/configuration/printable/#optimizationnodeenv">optimization.nodeEnv</a></li><li class="sidebar-item__anchor" title="optimization.mangleWasmImports"><a href="/configuration/printable/#optimizationmanglewasmimports">optimization.mangleWasmImports</a></li><li class="sidebar-item__anchor" title="optimization.removeAvailableModules"><a href="/configuration/printable/#optimizationremoveavailablemodules">optimization.removeAvailableModules</a></li><li class="sidebar-item__anchor" title="optimization.removeEmptyChunks"><a href="/configuration/printable/#optimizationremoveemptychunks">optimization.removeEmptyChunks</a></li><li class="sidebar-item__anchor" title="optimization.mergeDuplicateChunks"><a href="/configuration/printable/#optimizationmergeduplicatechunks">optimization.mergeDuplicateChunks</a></li><li class="sidebar-item__anchor" title="optimization.flagIncludedChunks"><a href="/configuration/printable/#optimizationflagincludedchunks">optimization.flagIncludedChunks</a></li><li class="sidebar-item__anchor" title="optimization.occurrenceOrder"><a href="/configuration/printable/#optimizationoccurrenceorder">optimization.occurrenceOrder</a></li><li class="sidebar-item__anchor" title="optimization.providedExports"><a href="/configuration/printable/#optimizationprovidedexports">optimization.providedExports</a></li><li class="sidebar-item__anchor" title="optimization.usedExports"><a href="/configuration/printable/#optimizationusedexports">optimization.usedExports</a></li><li class="sidebar-item__anchor" title="optimization.concatenateModules"><a href="/configuration/printable/#optimizationconcatenatemodules">optimization.concatenateModules</a></li><li class="sidebar-item__anchor" title="optimization.sideEffects"><a href="/configuration/printable/#optimizationsideeffects">optimization.sideEffects</a></li><li class="sidebar-item__anchor" title="optimization.portableRecords"><a href="/configuration/printable/#optimizationportablerecords">optimization.portableRecords</a></li><li class="sidebar-item__anchor" title="Plugins"><a href="/configuration/printable/#plugins">Plugins</a></li><li class="sidebar-item__anchor" title="plugins"><a href="/configuration/printable/#plugins-1">plugins</a></li><li class="sidebar-item__anchor" title="DevServer"><a href="/configuration/printable/#devserver">DevServer</a></li><li class="sidebar-item__anchor" title="devServer"><a href="/configuration/printable/#devserver-1">devServer</a></li><li class="sidebar-item__anchor" title="devServer.after"><a href="/configuration/printable/#devserverafter">devServer.after</a></li><li class="sidebar-item__anchor" title="devServer.allowedHosts"><a href="/configuration/printable/#devserverallowedhosts">devServer.allowedHosts</a></li><li class="sidebar-item__anchor" title="devServer.before"><a href="/configuration/printable/#devserverbefore">devServer.before</a></li><li class="sidebar-item__anchor" title="devServer.bonjour"><a href="/configuration/printable/#devserverbonjour">devServer.bonjour</a></li><li class="sidebar-item__anchor" title="devServer.clientLogLevel"><a href="/configuration/printable/#devserverclientloglevel">devServer.clientLogLevel</a></li><li class="sidebar-item__anchor" title="devServer.color"><a href="/configuration/printable/#devservercolor---cli-only">devServer.color</a></li><li class="sidebar-item__anchor" title="devServer.compress"><a href="/configuration/printable/#devservercompress">devServer.compress</a></li><li class="sidebar-item__anchor" title="devServer.contentBase"><a href="/configuration/printable/#devservercontentbase">devServer.contentBase</a></li><li class="sidebar-item__anchor" title="devServer.disableHostCheck"><a href="/configuration/printable/#devserverdisablehostcheck">devServer.disableHostCheck</a></li><li class="sidebar-item__anchor" title="devServer.filename"><a href="/configuration/printable/#devserverfilename-">devServer.filename</a></li><li class="sidebar-item__anchor" title="devServer.headers"><a href="/configuration/printable/#devserverheaders-">devServer.headers</a></li><li class="sidebar-item__anchor" title="devServer.historyApiFallback"><a href="/configuration/printable/#devserverhistoryapifallback">devServer.historyApiFallback</a></li><li class="sidebar-item__anchor" title="devServer.host"><a href="/configuration/printable/#devserverhost">devServer.host</a></li><li class="sidebar-item__anchor" title="devServer.hot"><a href="/configuration/printable/#devserverhot">devServer.hot</a></li><li class="sidebar-item__anchor" title="devServer.hotOnly"><a href="/configuration/printable/#devserverhotonly">devServer.hotOnly</a></li><li class="sidebar-item__anchor" title="devServer.http2"><a href="/configuration/printable/#devserverhttp2">devServer.http2</a></li><li class="sidebar-item__anchor" title="devServer.https"><a href="/configuration/printable/#devserverhttps">devServer.https</a></li><li class="sidebar-item__anchor" title="devServer.index"><a href="/configuration/printable/#devserverindex">devServer.index</a></li><li class="sidebar-item__anchor" title="devServer.info"><a href="/configuration/printable/#devserverinfo---cli-only">devServer.info</a></li><li class="sidebar-item__anchor" title="devServer.injectClient"><a href="/configuration/printable/#devserverinjectclient">devServer.injectClient</a></li><li class="sidebar-item__anchor" title="devServer.injectHot"><a href="/configuration/printable/#devserverinjecthot">devServer.injectHot</a></li><li class="sidebar-item__anchor" title="devServer.inline"><a href="/configuration/printable/#devserverinline">devServer.inline</a></li><li class="sidebar-item__anchor" title="devServer.lazy"><a href="/configuration/printable/#devserverlazy-">devServer.lazy</a></li><li class="sidebar-item__anchor" title="devServer.liveReload"><a href="/configuration/printable/#devserverlivereload">devServer.liveReload</a></li><li class="sidebar-item__anchor" title="devServer.mimeTypes"><a href="/configuration/printable/#devservermimetypes-">devServer.mimeTypes</a></li><li class="sidebar-item__anchor" title="devServer.noInfo"><a href="/configuration/printable/#devservernoinfo-">devServer.noInfo</a></li><li class="sidebar-item__anchor" title="devServer.onListening"><a href="/configuration/printable/#devserveronlistening">devServer.onListening</a></li><li class="sidebar-item__anchor" title="devServer.open"><a href="/configuration/printable/#devserveropen">devServer.open</a></li><li class="sidebar-item__anchor" title="devServer.openPage"><a href="/configuration/printable/#devserveropenpage">devServer.openPage</a></li><li class="sidebar-item__anchor" title="devServer.overlay"><a href="/configuration/printable/#devserveroverlay">devServer.overlay</a></li><li class="sidebar-item__anchor" title="devServer.pfx"><a href="/configuration/printable/#devserverpfx">devServer.pfx</a></li><li class="sidebar-item__anchor" title="devServer.pfxPassphrase"><a href="/configuration/printable/#devserverpfxpassphrase">devServer.pfxPassphrase</a></li><li class="sidebar-item__anchor" title="devServer.port"><a href="/configuration/printable/#devserverport">devServer.port</a></li><li class="sidebar-item__anchor" title="devServer.proxy"><a href="/configuration/printable/#devserverproxy">devServer.proxy</a></li><li class="sidebar-item__anchor" title="devServer.progress"><a href="/configuration/printable/#devserverprogress---cli-only">devServer.progress</a></li><li class="sidebar-item__anchor" title="devServer.public"><a href="/configuration/printable/#devserverpublic">devServer.public</a></li><li class="sidebar-item__anchor" title="devServer.publicPath"><a href="/configuration/printable/#devserverpublicpath-">devServer.publicPath</a></li><li class="sidebar-item__anchor" title="devServer.quiet"><a href="/configuration/printable/#devserverquiet-">devServer.quiet</a></li><li class="sidebar-item__anchor" title="devServer.serveIndex"><a href="/configuration/printable/#devserverserveindex">devServer.serveIndex</a></li><li class="sidebar-item__anchor" title="devServer.setup"><a href="/configuration/printable/#devserversetup">devServer.setup</a></li><li class="sidebar-item__anchor" title="devServer.socket"><a href="/configuration/printable/#devserversocket">devServer.socket</a></li><li class="sidebar-item__anchor" title="devServer.sockHost"><a href="/configuration/printable/#devserversockhost">devServer.sockHost</a></li><li class="sidebar-item__anchor" title="devServer.sockPath"><a href="/configuration/printable/#devserversockpath">devServer.sockPath</a></li><li class="sidebar-item__anchor" title="devServer.sockPort"><a href="/configuration/printable/#devserversockport">devServer.sockPort</a></li><li class="sidebar-item__anchor" title="devServer.staticOptions"><a href="/configuration/printable/#devserverstaticoptions">devServer.staticOptions</a></li><li class="sidebar-item__anchor" title="devServer.stats"><a href="/configuration/printable/#devserverstats-">devServer.stats</a></li><li class="sidebar-item__anchor" title="devServer.stdin"><a href="/configuration/printable/#devserverstdin---cli-only">devServer.stdin</a></li><li class="sidebar-item__anchor" title="devServer.transportMode"><a href="/configuration/printable/#devservertransportmode">devServer.transportMode</a></li><li class="sidebar-item__anchor" title="devServer.transportMode.client"><a href="/configuration/printable/#devservertransportmodeclient">devServer.transportMode.client</a></li><li class="sidebar-item__anchor" title="devServer.transportMode.server"><a href="/configuration/printable/#devservertransportmodeserver">devServer.transportMode.server</a></li><li class="sidebar-item__anchor" title="devServer.useLocalIp"><a href="/configuration/printable/#devserveruselocalip">devServer.useLocalIp</a></li><li class="sidebar-item__anchor" title="devServer.watchContentBase"><a href="/configuration/printable/#devserverwatchcontentbase">devServer.watchContentBase</a></li><li class="sidebar-item__anchor" title="devServer.watchOptions"><a href="/configuration/printable/#devserverwatchoptions-">devServer.watchOptions</a></li><li class="sidebar-item__anchor" title="devServer.writeToDisk"><a href="/configuration/printable/#devserverwritetodisk-">devServer.writeToDisk</a></li><li class="sidebar-item__anchor" title="Devtool"><a href="/configuration/printable/#devtool">Devtool</a></li><li class="sidebar-item__anchor" title="devtool"><a href="/configuration/printable/#devtool-1">devtool</a></li><li class="sidebar-item__anchor" title="Qualities"><a href="/configuration/printable/#qualities">Qualities</a></li><li class="sidebar-item__anchor" title="Development"><a href="/configuration/printable/#development">Development</a></li><li class="sidebar-item__anchor" title="Special cases"><a href="/configuration/printable/#special-cases">Special cases</a></li><li class="sidebar-item__anchor" title="Production"><a href="/configuration/printable/#production">Production</a></li><li class="sidebar-item__anchor" title="Target"><a href="/configuration/printable/#target">Target</a></li><li class="sidebar-item__anchor" title="target"><a href="/configuration/printable/#target-1">target</a></li><li class="sidebar-item__anchor" title="string"><a href="/configuration/printable/#string">string</a></li><li class="sidebar-item__anchor" title="function"><a href="/configuration/printable/#function">function</a></li><li class="sidebar-item__anchor" title="Watch and WatchOptions"><a href="/configuration/printable/#watch-and-watchoptions">Watch and WatchOptions</a></li><li class="sidebar-item__anchor" title="watch"><a href="/configuration/printable/#watch">watch</a></li><li class="sidebar-item__anchor" title="watchOptions"><a href="/configuration/printable/#watchoptions">watchOptions</a></li><li class="sidebar-item__anchor" title="watchOptions.aggregateTimeout"><a href="/configuration/printable/#watchoptionsaggregatetimeout">watchOptions.aggregateTimeout</a></li><li class="sidebar-item__anchor" title="watchOptions.ignored"><a href="/configuration/printable/#watchoptionsignored">watchOptions.ignored</a></li><li class="sidebar-item__anchor" title="watchOptions.poll"><a href="/configuration/printable/#watchoptionspoll">watchOptions.poll</a></li><li class="sidebar-item__anchor" title="info-verbosity"><a href="/configuration/printable/#info-verbosity">info-verbosity</a></li><li class="sidebar-item__anchor" title="Troubleshooting"><a href="/configuration/printable/#troubleshooting">Troubleshooting</a></li><li class="sidebar-item__anchor" title="Changes Seen But Not Processed"><a href="/configuration/printable/#changes-seen-but-not-processed">Changes Seen But Not Processed</a></li><li class="sidebar-item__anchor" title="Not Enough Watchers"><a href="/configuration/printable/#not-enough-watchers">Not Enough Watchers</a></li><li class="sidebar-item__anchor" title="macOS fsevents Bug"><a href="/configuration/printable/#macos-fsevents-bug">macOS fsevents Bug</a></li><li class="sidebar-item__anchor" title="Windows Paths"><a href="/configuration/printable/#windows-paths">Windows Paths</a></li><li class="sidebar-item__anchor" title="Vim"><a href="/configuration/printable/#vim">Vim</a></li><li class="sidebar-item__anchor" title="Saving in WebStorm"><a href="/configuration/printable/#saving-in-webstorm">Saving in WebStorm</a></li><li class="sidebar-item__anchor" title="Externals"><a href="/configuration/printable/#externals">Externals</a></li><li class="sidebar-item__anchor" title="externals"><a href="/configuration/printable/#externals-1">externals</a></li><li class="sidebar-item__anchor" title="string"><a href="/configuration/printable/#string-1">string</a></li><li class="sidebar-item__anchor" title="array"><a href="/configuration/printable/#array">array</a></li><li class="sidebar-item__anchor" title="object"><a href="/configuration/printable/#object">object</a></li><li class="sidebar-item__anchor" title="function"><a href="/configuration/printable/#function-1">function</a></li><li class="sidebar-item__anchor" title="regex"><a href="/configuration/printable/#regex">regex</a></li><li class="sidebar-item__anchor" title="Combining syntaxes"><a href="/configuration/printable/#combining-syntaxes">Combining syntaxes</a></li><li class="sidebar-item__anchor" title="Performance"><a href="/configuration/printable/#performance">Performance</a></li><li class="sidebar-item__anchor" title="performance"><a href="/configuration/printable/#performance-1">performance</a></li><li class="sidebar-item__anchor" title="performance.hints"><a href="/configuration/printable/#performancehints">performance.hints</a></li><li class="sidebar-item__anchor" title="performance.maxEntrypointSize"><a href="/configuration/printable/#performancemaxentrypointsize">performance.maxEntrypointSize</a></li><li class="sidebar-item__anchor" title="performance.maxAssetSize"><a href="/configuration/printable/#performancemaxassetsize">performance.maxAssetSize</a></li><li class="sidebar-item__anchor" title="performance.assetFilter"><a href="/configuration/printable/#performanceassetfilter">performance.assetFilter</a></li><li class="sidebar-item__anchor" title="Node"><a href="/configuration/printable/#node">Node</a></li><li class="sidebar-item__anchor" title="node"><a href="/configuration/printable/#node-1">node</a></li><li class="sidebar-item__anchor" title="node.console"><a href="/configuration/printable/#nodeconsole">node.console</a></li><li class="sidebar-item__anchor" title="node.process"><a href="/configuration/printable/#nodeprocess">node.process</a></li><li class="sidebar-item__anchor" title="node.global"><a href="/configuration/printable/#nodeglobal">node.global</a></li><li class="sidebar-item__anchor" title="node.__filename"><a href="/configuration/printable/#node__filename">node.__filename</a></li><li class="sidebar-item__anchor" title="node.__dirname"><a href="/configuration/printable/#node__dirname">node.__dirname</a></li><li class="sidebar-item__anchor" title="node.Buffer"><a href="/configuration/printable/#nodebuffer">node.Buffer</a></li><li class="sidebar-item__anchor" title="node.setImmediate"><a href="/configuration/printable/#nodesetimmediate">node.setImmediate</a></li><li class="sidebar-item__anchor" title="Other node core libraries"><a href="/configuration/printable/#other-node-core-libraries">Other node core libraries</a></li><li class="sidebar-item__anchor" title="Stats"><a href="/configuration/printable/#stats">Stats</a></li><li class="sidebar-item__anchor" title="stats"><a href="/configuration/printable/#stats-1">stats</a></li><li class="sidebar-item__anchor" title="stats.all"><a href="/configuration/printable/#statsall">stats.all</a></li><li class="sidebar-item__anchor" title="stats.assets"><a href="/configuration/printable/#statsassets">stats.assets</a></li><li class="sidebar-item__anchor" title="stats.assetsSort"><a href="/configuration/printable/#statsassetssort">stats.assetsSort</a></li><li class="sidebar-item__anchor" title="stats.builtAt"><a href="/configuration/printable/#statsbuiltat">stats.builtAt</a></li><li class="sidebar-item__anchor" title="stats.cached"><a href="/configuration/printable/#statscached">stats.cached</a></li><li class="sidebar-item__anchor" title="stats.cachedAssets"><a href="/configuration/printable/#statscachedassets">stats.cachedAssets</a></li><li class="sidebar-item__anchor" title="stats.children"><a href="/configuration/printable/#statschildren">stats.children</a></li><li class="sidebar-item__anchor" title="stats.chunks"><a href="/configuration/printable/#statschunks">stats.chunks</a></li><li class="sidebar-item__anchor" title="stats.chunkGroups"><a href="/configuration/printable/#statschunkgroups">stats.chunkGroups</a></li><li class="sidebar-item__anchor" title="stats.chunkModules"><a href="/configuration/printable/#statschunkmodules">stats.chunkModules</a></li><li class="sidebar-item__anchor" title="stats.chunkOrigins"><a href="/configuration/printable/#statschunkorigins">stats.chunkOrigins</a></li><li class="sidebar-item__anchor" title="stats.chunksSort"><a href="/configuration/printable/#statschunkssort">stats.chunksSort</a></li><li class="sidebar-item__anchor" title="stats.context"><a href="/configuration/printable/#statscontext">stats.context</a></li><li class="sidebar-item__anchor" title="stats.colors"><a href="/configuration/printable/#statscolors">stats.colors</a></li><li class="sidebar-item__anchor" title="stats.depth"><a href="/configuration/printable/#statsdepth">stats.depth</a></li><li class="sidebar-item__anchor" title="stats.entrypoints"><a href="/configuration/printable/#statsentrypoints">stats.entrypoints</a></li><li class="sidebar-item__anchor" title="stats.env"><a href="/configuration/printable/#statsenv">stats.env</a></li><li class="sidebar-item__anchor" title="stats.errors"><a href="/configuration/printable/#statserrors">stats.errors</a></li><li class="sidebar-item__anchor" title="stats.errorDetails"><a href="/configuration/printable/#statserrordetails">stats.errorDetails</a></li><li class="sidebar-item__anchor" title="stats.excludeAssets"><a href="/configuration/printable/#statsexcludeassets">stats.excludeAssets</a></li><li class="sidebar-item__anchor" title="stats.excludeModules"><a href="/configuration/printable/#statsexcludemodules">stats.excludeModules</a></li><li class="sidebar-item__anchor" title="stats.exclude"><a href="/configuration/printable/#statsexclude">stats.exclude</a></li><li class="sidebar-item__anchor" title="stats.hash"><a href="/configuration/printable/#statshash">stats.hash</a></li><li class="sidebar-item__anchor" title="stats.logging"><a href="/configuration/printable/#statslogging">stats.logging</a></li><li class="sidebar-item__anchor" title="stats.loggingDebug"><a href="/configuration/printable/#statsloggingdebug">stats.loggingDebug</a></li><li class="sidebar-item__anchor" title="stats.loggingTrace"><a href="/configuration/printable/#statsloggingtrace">stats.loggingTrace</a></li><li class="sidebar-item__anchor" title="stats.maxModules"><a href="/configuration/printable/#statsmaxmodules">stats.maxModules</a></li><li class="sidebar-item__anchor" title="stats.modules"><a href="/configuration/printable/#statsmodules">stats.modules</a></li><li class="sidebar-item__anchor" title="stats.modulesSort"><a href="/configuration/printable/#statsmodulessort">stats.modulesSort</a></li><li class="sidebar-item__anchor" title="stats.moduleTrace"><a href="/configuration/printable/#statsmoduletrace">stats.moduleTrace</a></li><li class="sidebar-item__anchor" title="stats.outputPath"><a href="/configuration/printable/#statsoutputpath">stats.outputPath</a></li><li class="sidebar-item__anchor" title="stats.performance"><a href="/configuration/printable/#statsperformance">stats.performance</a></li><li class="sidebar-item__anchor" title="stats.providedExports"><a href="/configuration/printable/#statsprovidedexports">stats.providedExports</a></li><li class="sidebar-item__anchor" title="stats.publicPath"><a href="/configuration/printable/#statspublicpath">stats.publicPath</a></li><li class="sidebar-item__anchor" title="stats.reasons"><a href="/configuration/printable/#statsreasons">stats.reasons</a></li><li class="sidebar-item__anchor" title="stats.source"><a href="/configuration/printable/#statssource">stats.source</a></li><li class="sidebar-item__anchor" title="stats.timings"><a href="/configuration/printable/#statstimings">stats.timings</a></li><li class="sidebar-item__anchor" title="stats.usedExports"><a href="/configuration/printable/#statsusedexports">stats.usedExports</a></li><li class="sidebar-item__anchor" title="stats.version"><a href="/configuration/printable/#statsversion">stats.version</a></li><li class="sidebar-item__anchor" title="stats.warnings"><a href="/configuration/printable/#statswarnings">stats.warnings</a></li><li class="sidebar-item__anchor" title="stats.warningsFilter"><a href="/configuration/printable/#statswarningsfilter">stats.warningsFilter</a></li><li class="sidebar-item__anchor" title="Sorting fields"><a href="/configuration/printable/#sorting-fields">Sorting fields</a></li><li class="sidebar-item__anchor" title="Extending stats behaviours"><a href="/configuration/printable/#extending-stats-behaviours">Extending stats behaviours</a></li><li class="sidebar-item__anchor" title="Other Options"><a href="/configuration/printable/#other-options">Other Options</a></li><li class="sidebar-item__anchor" title="amd"><a href="/configuration/printable/#amd">amd</a></li><li class="sidebar-item__anchor" title="bail"><a href="/configuration/printable/#bail">bail</a></li><li class="sidebar-item__anchor" title="cache"><a href="/configuration/printable/#cache">cache</a></li><li class="sidebar-item__anchor" title="loader"><a href="/configuration/printable/#loader">loader</a></li><li class="sidebar-item__anchor" title="parallelism"><a href="/configuration/printable/#parallelism">parallelism</a></li><li class="sidebar-item__anchor" title="profile"><a href="/configuration/printable/#profile">profile</a></li><li class="sidebar-item__anchor" title="recordsPath"><a href="/configuration/printable/#recordspath">recordsPath</a></li><li class="sidebar-item__anchor" title="recordsInputPath"><a href="/configuration/printable/#recordsinputpath">recordsInputPath</a></li><li class="sidebar-item__anchor" title="recordsOutputPath"><a href="/configuration/printable/#recordsoutputpath">recordsOutputPath</a></li><li class="sidebar-item__anchor" title="name"><a href="/configuration/printable/#name">name</a></li><li class="sidebar-item__anchor" title="infrastructureLogging"><a href="/configuration/printable/#infrastructurelogging">infrastructureLogging</a></li><li class="sidebar-item__anchor" title="infrastructureLogging.level"><a href="/configuration/printable/#infrastructurelogginglevel">infrastructureLogging.level</a></li><li class="sidebar-item__anchor" title="infrastructureLogging.debug"><a href="/configuration/printable/#infrastructureloggingdebug">infrastructureLogging.debug</a></li></ul></div></div></div></nav><section class="page"><div class="page-links"><a class="page-links__link" href="https://github.com/webpack/webpack.js.org/edit/master/src/content/configuration/optimization.md">Edit Document<i class="page-links__icon icon-edit"></i></a><span class="page-links__gap">|</span><button class="page-links__link page-links__print as-link" title="Print this page">Print Document<img src="/96ccbfac58b65e83657a220603e00abe.svg"/></button></div><div class="markdown"><h1>Optimization</h1><div><p>Since version 4 webpack runs optimizations for you depending on the chosen <a href="/configuration/mode/"><code>mode</code></a>, still all optimizations are available for manual configuration and overrides.</p>
<h2 id="optimizationminimize"><code>optimization.minimize</code><a href="#optimizationminimize" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean</code></p>
<p>Tell webpack to minimize the bundle using the <a href="/plugins/terser-webpack-plugin/">TerserPlugin</a>.</p>
<p>This is <code>true</code> by default in <code>production</code> mode.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
minimize<span class="token punctuation">:</span> <span class="token boolean">false</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<blockquote class="tip">
<p>Learn how <a href="/configuration/mode/">mode</a> works.</p>
</blockquote>
<h2 id="optimizationminimizer"><code>optimization.minimizer</code><a href="#optimizationminimizer" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>[Plugin]</code> and or <code>[function (compiler)]</code></p>
<p>Allows you to override the default minimizer by providing a different one or more customized <a href="/plugins/terser-webpack-plugin/">TerserPlugin</a> instances.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js"><span class="token keyword">const</span> TerserPlugin <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'terser-webpack-plugin'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>
<span class="token keyword">new</span> <span class="token class-name">TerserPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
cache<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
parallel<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
sourceMap<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token comment">// Must be set to true if using source-maps in production</span>
terserOptions<span class="token punctuation">:</span> <span class="token punctuation">{</span>
<span class="token comment">// https://github.com/webpack-contrib/terser-webpack-plugin#terseroptions</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<p>Or, as function:</p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">(</span>compiler<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> TerserPlugin <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'terser-webpack-plugin'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">new</span> <span class="token class-name">TerserPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token comment">/* your config */</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">apply</span><span class="token punctuation">(</span>compiler<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationsplitchunks"><code>optimization.splitChunks</code><a href="#optimizationsplitchunks" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>object</code></p>
<p>By default webpack v4+ provides new common chunks strategies out of the box for dynamically imported modules. See available options for configuring this behavior in the <a href="/plugins/split-chunks-plugin/">SplitChunksPlugin</a> page.</p>
<h2 id="optimizationruntimechunk"><code>optimization.runtimeChunk</code><a href="#optimizationruntimechunk" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>object</code> <code>string</code> <code>boolean</code></p>
<p>Setting <code>optimization.runtimeChunk</code> to <code>true</code> or <code>'multiple'</code> adds an additional chunk to each entrypoint containing only the runtime. This setting is an alias for:</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
runtimeChunk<span class="token punctuation">:</span> <span class="token punctuation">{</span>
name<span class="token punctuation">:</span> entrypoint <span class="token operator">=></span> <span class="token template-string"><span class="token string">`runtime~</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>entrypoint<span class="token punctuation">.</span>name<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<p>The value <code>'single'</code> instead creates a runtime file to be shared for all generated chunks. This setting is an alias for:</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
runtimeChunk<span class="token punctuation">:</span> <span class="token punctuation">{</span>
name<span class="token punctuation">:</span> <span class="token string">'runtime'</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<p>By setting <code>optimization.runtimeChunk</code> to <code>object</code> it is only possible to provide the <code>name</code> property which stands for the name or name factory for the runtime chunks.</p>
<p>Default is <code>false</code>: each entry chunk embeds runtime.</p>
<blockquote class="warning">
<p>Imported modules are initialized for each runtime chunk separately, so if you include multiple entry points on a page, beware of this behavior. You will probably want to set it to <code>single</code> or use another configuration that allows you to only have one runtime instance.</p>
</blockquote>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
runtimeChunk<span class="token punctuation">:</span> <span class="token punctuation">{</span>
name<span class="token punctuation">:</span> entrypoint <span class="token operator">=></span> <span class="token template-string"><span class="token string">`runtimechunk~</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>entrypoint<span class="token punctuation">.</span>name<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationnoemitonerrors"><code>optimization.noEmitOnErrors</code><a href="#optimizationnoemitonerrors" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean</code></p>
<p>Use the <code>optimization.noEmitOnErrors</code> to skip the emitting phase whenever there are errors while compiling. This ensures that no erroring assets are emitted. The <code>emitted</code> flag in the stats is <code>false</code> for all assets.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
noEmitOnErrors<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<blockquote class="warning">
<p>If you are using webpack <a href="/api/cli/">CLI</a>, the webpack process will not exit with an error code while this plugin is enabled. If you want webpack to "fail" when using the CLI, please check out the <a href="/api/cli/#advanced-options"><code>bail</code> option</a>.</p>
</blockquote>
<h2 id="optimizationnamedmodules"><code>optimization.namedModules</code><a href="#optimizationnamedmodules" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean = false</code></p>
<p>Tells webpack to use readable module identifiers for better debugging. When <code>optimization.namedModules</code> is not set in webpack config, webpack will enable it by default for <a href="/configuration/mode/">mode</a> <code>development</code> and disable for <a href="/configuration/mode/">mode</a> <code>production</code>.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
namedModules<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationnamedchunks"><code>optimization.namedChunks</code><a href="#optimizationnamedchunks" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean = false</code></p>
<p>Tells webpack to use readable chunk identifiers for better debugging. This option is enabled by default for <a href="/configuration/mode/">mode</a> <code>development</code> and disabled for <a href="/configuration/mode/">mode</a> <code>production</code> if no option is provided in webpack config.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
namedChunks<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationmoduleids"><code>optimization.moduleIds</code><a href="#optimizationmoduleids" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean = false</code> <code>string: 'natural' | 'named' | 'hashed' | 'size' | 'total-size'</code></p>
<p>Tells webpack which algorithm to use when choosing module ids. Setting <code>optimization.moduleIds</code> to <code>false</code> tells webpack that none of built-in algorithms should be used, as custom one can be provided via plugin. By default <code>optimization.moduleIds</code> is set to <code>false</code>.</p>
<p>The following string values are supported:</p>
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><div class="title"><p>Option</p><p>Description</p></div>
<div class="content"><p><code>natural</code><p class="description mobile">Numeric ids in order of usage.</p></p></div></td>
<td class="description desktop">Numeric ids in order of usage.</td>
</tr>
<tr>
<td><div class="title"><p>Option</p><p>Description</p></div>
<div class="content"><p><code>named</code><p class="description mobile">Readable ids for better debugging.</p></p></div></td>
<td class="description desktop">Readable ids for better debugging.</td>
</tr>
<tr>
<td><div class="title"><p>Option</p><p>Description</p></div>
<div class="content"><p><code>hashed</code><p class="description mobile">Short hashes as ids for better long term caching.</p></p></div></td>
<td class="description desktop">Short hashes as ids for better long term caching.</td>
</tr>
<tr>
<td><div class="title"><p>Option</p><p>Description</p></div>
<div class="content"><p><code>size</code><p class="description mobile">Numeric ids focused on minimal initial download size.</p></p></div></td>
<td class="description desktop">Numeric ids focused on minimal initial download size.</td>
</tr>
<tr>
<td><div class="title"><p>Option</p><p>Description</p></div>
<div class="content"><p><code>total-size</code><p class="description mobile">numeric ids focused on minimal total download size.</p></p></div></td>
<td class="description desktop">numeric ids focused on minimal total download size.</td>
</tr>
</tbody>
</table>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
moduleIds<span class="token punctuation">:</span> <span class="token string">'hashed'</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationchunkids"><code>optimization.chunkIds</code><a href="#optimizationchunkids" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean = false</code> <code>string: 'natural' | 'named' | 'size' | 'total-size'</code></p>
<p>Tells webpack which algorithm to use when choosing chunk ids. Setting <code>optimization.chunkIds</code> to <code>false</code> tells webpack that none of built-in algorithms should be used, as custom one can be provided via plugin. There are couple of defaults for <code>optimization.chunkIds</code>:</p>
<ul>
<li>if <a href="#optimizationoccurrenceorder"><code>optimization.occurrenceOrder</code></a> is enabled <code>optimization.chunkIds</code> is set to <code>'total-size'</code></li>
<li>Disregarding previous if, if <a href="#optimizationnamedchunks"><code>optimization.namedChunks</code></a> is enabled <code>optimization.chunkIds</code> is set to <code>'named'</code></li>
<li>if none of the above, <code>optimization.chunkIds</code> will be defaulted to <code>'natural'</code></li>
</ul>
<p>The following string values are supported:</p>
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><div class="title"><p>Option</p><p>Description</p></div>
<div class="content"><p><code>'natural'</code><p class="description mobile">Numeric ids in order of usage.</p></p></div></td>
<td class="description desktop">Numeric ids in order of usage.</td>
</tr>
<tr>
<td><div class="title"><p>Option</p><p>Description</p></div>
<div class="content"><p><code>'named'</code><p class="description mobile">Readable ids for better debugging.</p></p></div></td>
<td class="description desktop">Readable ids for better debugging.</td>
</tr>
<tr>
<td><div class="title"><p>Option</p><p>Description</p></div>
<div class="content"><p><code>'size'</code><p class="description mobile">Numeric ids focused on minimal initial download size.</p></p></div></td>
<td class="description desktop">Numeric ids focused on minimal initial download size.</td>
</tr>
<tr>
<td><div class="title"><p>Option</p><p>Description</p></div>
<div class="content"><p><code>'total-size'</code><p class="description mobile">numeric ids focused on minimal total download size.</p></p></div></td>
<td class="description desktop">numeric ids focused on minimal total download size.</td>
</tr>
</tbody>
</table>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
chunkIds<span class="token punctuation">:</span> <span class="token string">'named'</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationnodeenv"><code>optimization.nodeEnv</code><a href="#optimizationnodeenv" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean = false</code> <code>string</code></p>
<p>Tells webpack to set <code>process.env.NODE_ENV</code> to a given string value. <code>optimization.nodeEnv</code> uses <a href="/plugins/define-plugin/">DefinePlugin</a> unless set to <code>false</code>. <code>optimization.nodeEnv</code> <strong>defaults</strong> to <a href="/configuration/mode/">mode</a> if set, else falls back to <code>'production'</code>.</p>
<p>Possible values:</p>
<ul>
<li>any string: the value to set <code>process.env.NODE_ENV</code> to.</li>
<li>false: do not modify/set the value of <code>process.env.NODE_ENV</code>.</li>
</ul>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
nodeEnv<span class="token punctuation">:</span> <span class="token string">'production'</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationmanglewasmimports"><code>optimization.mangleWasmImports</code><a href="#optimizationmanglewasmimports" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean = false</code></p>
<p>When set to <code>true</code> tells webpack to reduce the size of WASM by changing imports to shorter strings. It mangles module and export names.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
mangleWasmImports<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationremoveavailablemodules"><code>optimization.removeAvailableModules</code><a href="#optimizationremoveavailablemodules" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean = false</code></p>
<p>Tells webpack to detect and remove modules from chunks when these modules are already included in all parents. Setting <code>optimization.removeAvailableModules</code> to <code>true</code> will enable this optimization. Enabled by default in <a href="/configuration/mode/"><code>production</code> mode</a>.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
removeAvailableModules<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<blockquote class="warning">
<p><code>optimization.removeAvailableModules</code> reduces the performance of webpack, and will be disabled in <code>production</code> mode by default in next major release. Disable it in <code>production</code> mode if you want extra build performance.</p>
</blockquote>
<h2 id="optimizationremoveemptychunks"><code>optimization.removeEmptyChunks</code><a href="#optimizationremoveemptychunks" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean = true</code></p>
<p>Tells webpack to detect and remove chunks which are empty. Setting <code>optimization.removeEmptyChunks</code> to <code>false</code> will disable this optimization.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
removeEmptyChunks<span class="token punctuation">:</span> <span class="token boolean">false</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationmergeduplicatechunks"><code>optimization.mergeDuplicateChunks</code><a href="#optimizationmergeduplicatechunks" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean = true</code></p>
<p>Tells webpack to merge chunks which contain the same modules. Setting <code>optimization.mergeDuplicateChunks</code> to <code>false</code> will disable this optimization.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
mergeDuplicateChunks<span class="token punctuation">:</span> <span class="token boolean">false</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationflagincludedchunks"><code>optimization.flagIncludedChunks</code><a href="#optimizationflagincludedchunks" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean</code></p>
<p>Tells webpack to determine and flag chunks which are subsets of other chunks in a way that subsets don’t have to be loaded when the bigger chunk has been already loaded. By default <code>optimization.flagIncludedChunks</code> is enabled in <code>production</code> <a href="/configuration/mode/">mode</a> and disabled elsewise.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
flagIncludedChunks<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationoccurrenceorder"><code>optimization.occurrenceOrder</code><a href="#optimizationoccurrenceorder" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean</code></p>
<p>Tells webpack to figure out an order of modules which will result in the smallest initial bundle. By default <code>optimization.occurrenceOrder</code> is enabled in <code>production</code> <a href="/configuration/mode/">mode</a> and disabled elsewise.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
occurrenceOrder<span class="token punctuation">:</span> <span class="token boolean">false</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationprovidedexports"><code>optimization.providedExports</code><a href="#optimizationprovidedexports" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean</code></p>
<p>Tells webpack to figure out which exports are provided by modules to generate more efficient code for <code>export * from ...</code>. By default <code>optimization.providedExports</code> is enabled.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
providedExports<span class="token punctuation">:</span> <span class="token boolean">false</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationusedexports"><code>optimization.usedExports</code><a href="#optimizationusedexports" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean</code></p>
<p>Tells webpack to determine used exports for each module. This depends on <a href="#optimizationoccurrenceorder"><code>optimization.providedExports</code></a>. Information collected by <code>optimization.usedExports</code> is used by other optimizations or code generation i.e. exports are not generated for unused exports, export names are mangled to single char identifiers when all usages are compatible.
Dead code elimination in minimizers will benefit from this and can remove unused exports.
By default <code>optimization.usedExports</code> is enabled in <code>production</code> <a href="/configuration/mode/">mode</a> and disabled elsewise.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
usedExports<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationconcatenatemodules"><code>optimization.concatenateModules</code><a href="#optimizationconcatenatemodules" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean</code></p>
<p>Tells webpack to find segments of the module graph which can be safely concatenated into a single module. Depends on <a href="#optimizationprovidedexports"><code>optimization.providedExports</code></a> and <a href="#optimizationusedexports"><code>optimization.usedExports</code></a>.
By default <code>optimization.concatenateModules</code> is enabled in <code>production</code> <a href="/configuration/mode/">mode</a> and disabled elsewise.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
concatenateModules<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationsideeffects"><code>optimization.sideEffects</code><a href="#optimizationsideeffects" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean</code></p>
<p>Tells webpack to recognise the <a href="https://github.com/webpack/webpack/blob/master/examples/side-effects/README.md"><code>sideEffects</code></a> flag in <code>package.json</code> or rules to skip over modules which are flagged to contain no side effects when exports are not used.</p>
<p><strong>package.json</strong></p>
<pre><code class="hljs language-json"><span class="token punctuation">{</span>
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"awesome npm module"</span><span class="token punctuation">,</span>
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token string">"1.0.0"</span><span class="token punctuation">,</span>
<span class="token property">"sideEffects"</span><span class="token operator">:</span> <span class="token boolean">false</span>
<span class="token punctuation">}</span></code></pre>
<blockquote class="tip">
<p>Please note that <code>sideEffects</code> should be in the npm module's <code>package.json</code> file and doesn't mean that you need to set <code>sideEffects</code> to <code>false</code> in your own project's <code>package.json</code> which requires that big module.</p>
</blockquote>
<p><code>optimization.sideEffects</code> depends on <a href="#optimizationprovidedexports"><code>optimization.providedExports</code></a> to be enabled. This dependency has a build time cost, but eliminating modules has positive impact on performance because of less code generation. Effect of this optimization depends on your codebase, try it for possible performance wins.</p>
<p>By default <code>optimization.sideEffects</code> is enabled in <code>production</code> <a href="/configuration/mode/">mode</a> and disabled elsewise.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
sideEffects<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
<h2 id="optimizationportablerecords"><code>optimization.portableRecords</code><a href="#optimizationportablerecords" aria-hidden="true"><span class="icon icon-link"></span></a></h2>
<p><code>boolean</code></p>
<p><code>optimization.portableRecords</code> tells webpack to generate records with relative paths to be able to move the context folder.</p>
<p>By default <code>optimization.portableRecords</code> is disabled. Automatically enabled if at least one of the records options provided to webpack config: <a href="/configuration/other-options/#recordspath"><code>recordsPath</code></a>, <a href="/configuration/other-options/#recordsinputpath"><code>recordsInputPath</code></a>, <a href="/configuration/other-options/#recordsoutputpath"><code>recordsOutputPath</code></a>.</p>
<p><strong>webpack.config.js</strong></p>
<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token comment">//...</span>
optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>
portableRecords<span class="token punctuation">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>
</div><div class="related__section"><hr/><h3>Further Reading</h3><ul><li><a href="https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366">webpack 4: Code Splitting, chunk graph and the splitChunks optimization</a></li></ul></div><div class="contributors__section"><hr/><h3>Contributors</h3><div class="contributors"><div class="contributors__list"><a class="contributor" href="https://github.com/EugeneHlushko"><img alt="EugeneHlushko" src="/cb0093496837d3dc43dfae5a9104d663.png"/><span class="contributor__name"> <!-- -->EugeneHlushko</span></a><a class="contributor" href="https://github.com/jeremenichelli"><img alt="jeremenichelli" src="/cb0093496837d3dc43dfae5a9104d663.png"/><span class="contributor__name"> <!-- -->jeremenichelli</span></a><a class="contributor" href="https://github.com/simon04"><img alt="simon04" src="/cb0093496837d3dc43dfae5a9104d663.png"/><span class="contributor__name"> <!-- -->simon04</span></a><a class="contributor" href="https://github.com/byzyk"><img alt="byzyk" src="/cb0093496837d3dc43dfae5a9104d663.png"/><span class="contributor__name"> <!-- -->byzyk</span></a><a class="contributor" href="https://github.com/madhavarshney"><img alt="madhavarshney" src="/cb0093496837d3dc43dfae5a9104d663.png"/><span class="contributor__name"> <!-- -->madhavarshney</span></a><a class="contributor" href="https://github.com/dhurlburtusa"><img alt="dhurlburtusa" src="/cb0093496837d3dc43dfae5a9104d663.png"/><span class="contributor__name"> <!-- -->dhurlburtusa</span></a></div></div></div></div></section><div class="gitter"><div class="gitter__button"><i class="gitter__icon icon-gitter"></i></div></div></div><footer class="footer"><div class="container footer__inner"><section class="footer__left"><a class="footer__link" href="/guides/getting-started/">Get Started</a><a class="footer__link" href="/organization/">Organization</a><a class="footer__link" href="/starter-kits/">Starter Kits</a><a class="footer__link" href="/comparison/">Comparison</a></section><section class="footer__middle"><a class="footer__icon" href="/"><img src="/d19378a95ebe6b15d5ddea281138dcf4.svg" alt="webpack icon"/></a></section><section class="footer__right"><a href="https://webpack.threadless.com/" target="_blank" rel="noopener" class="footer__link">Swag Store</a><a class="footer__link" href="/glossary/">Glossary</a><a class="footer__link" href="/branding/">Branding</a><a href="https://gitter.im/webpack/webpack" target="_blank" rel="noopener" class="footer__link">Gitter</a><a href="https://github.com/webpack/webpack/releases" target="_blank" rel="noopener" class="footer__link">Changelog</a><a class="footer__link footer__license" href="/license"><img alt="Creative Commons License" src="/7052446b5e67df4434f4031afd2f1497.svg"/><img alt="Creative Commons License" src="/7ebb1b3901ce119694f65e04f6347ef5.svg"/></a></section></div></footer></div></div><script src="/vendor.bundle.js"></script><script src="/index.bundle.js"></script></body></html>