# webpack v5.110.0 - Product: webpack (https://whatsnew.fyi/product/webpack) - Vendor: OpenJS Foundation - Date: 2026-08-27 - Version: v5.110.0 - Original notes: https://github.com/webpack/webpack/releases/tag/v5.110.0 - Permalink: https://whatsnew.fyi/product/webpack/releases/v5.110.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Wrap concatenated modules in lazy __webpack_require__.cw accessors and inline require(), keeping a wrapped body's names and side effects intact - **added** — Add performance hints reporting what a build costs: duplicate packages and modules, circular dependencies, broad contexts, large modules and chunks, hotspots, eval, missing PURE annotations, polyfills, redundant dynamic imports, OS-dependent rules, cache effectiveness, how chunks load, what splitting refused, why an optimization was skipped, and rules, defines, externals, aliases and barrel reexports nothing uses - **added** — Add the descriptionRelativePath module rule condition - **added** — Add OS-independent glob matching to module rules - **added** — Report inner-graph, AMD and bare module bailouts in optimizationBailout - **added** — Allow marking externals as side-effect-free with a sideEffects flag - **added** — Give externals the original request of a context module element - **added** — Add the externalsPresets.nodeModules preset with an allowlist option to externalize installed packages - **added** — Add output.library.umdAmdContainer for an AMD-style loader branch in UMD - **added** — Resolve @custom-media values that are true / false or name another custom media - **added** — Add the __webpack_css_server_styles__ module variable to read the CSS collected while rendering without a DOM - **changed** — Patch the HTML
in place on hot update instead of forcing a full reload - **changed** — Scope counter names in CSS modules and fix the counter() counter-style and animation timeline keywords - **changed** — Derive import defer / import source from the target and fix the source phase - **added** — Emit analyzable ESM urls for chunks, assets, styles, workers and wasm - **changed** — Tree shake CommonJS: module.exports object literals, exports destructured from a require() binding, unused method requires, and unused side-effect-free require() calls and reexports - **changed** — Resolve relative entry baseUri values and bake one side of a hash cycle - **changed** — Minify CSS further with advanced transformations including shorthands, keywords, colors, numbers, times, calc() and other math functions, selector lists, An+B, keyframe selectors, media-feature ranges, unicode-range, transition layers, display, transforms, gradients, font families, and dead rule elimination - **changed** — Safely minify CSS and HTML assets when optimization.minimize is enabled unless a minimizer is already configured ###### Minor Changes - Wrap concatenated modules in lazy `__webpack_require__.cw` accessors and inline `require()`, keeping a wrapped body's names and side effects intact. (by [@hai-x](https://github.com/hai-x) in [#21519](https://github.com/webpack/webpack/pull/21519)) - Add performance hints reporting what a build costs: duplicate packages and modules, circular dependencies, broad contexts, large modules and chunks, hotspots, `eval`, missing PURE annotations, polyfills, redundant dynamic imports, OS-dependent rules, cache effectiveness, how chunks load, what splitting refused, why an optimization was skipped, and rules, defines, externals, aliases and barrel reexports nothing uses. An oversized asset names its largest modules, and an entrypoint carrying the runtime recommends `optimization.runtimeChunk`. Enable every check not set individually with `performance.all`, report hints in stats only with `performance.hints: "stats"`, and get them in a stable order that leaves the build hashes unchanged. (by [@alexander-akait](https://github.com/alexander-akait) in [#21841](https://github.com/webpack/webpack/pull/21841)) - Add the `descriptionRelativePath` module rule condition. (by [@alexander-akait](https://github.com/alexander-akait) in [#21705](https://github.com/webpack/webpack/pull/21705)) - Add OS-independent `glob` matching to module rules. (by [@alexander-akait](https://github.com/alexander-akait) in [#21771](https://github.com/webpack/webpack/pull/21771)) - Report inner-graph, AMD and bare `module` bailouts in `optimizationBailout`. (by [@alexander-akait](https://github.com/alexander-akait) in [#21740](https://github.com/webpack/webpack/pull/21740)) - Allow marking externals as side-effect-free with a `sideEffects` flag. (by [@alexander-akait](https://github.com/alexander-akait) in [#21712](https://github.com/webpack/webpack/pull/21712)) - Give externals the original request of a context module element. (by [@alexander-akait](https://github.com/alexander-akait) in [#21780](https://github.com/webpack/webpack/pull/21780)) - Add the `externalsPresets.nodeModules` preset with an `allowlist` option to externalize installed packages, replacing the `webpack-node-externals` plugin. (by [@alexander-akait](https://github.com/alexander-akait) in [#21569](https://github.com/webpack/webpack/pull/21569)) - Add `output.library.umdAmdContainer` for an AMD-style loader branch in UMD. (by [@hai-x](https://github.com/hai-x) in [#21770](https://github.com/webpack/webpack/pull/21770)) - Resolve `@custom-media` values that are `true` / `false` or name another custom media. (by [@alexander-akait](https://github.com/alexander-akait) in [#21624](https://github.com/webpack/webpack/pull/21624)) - Add the `__webpack_css_server_styles__` module variable to read the CSS collected while rendering without a DOM, and keep that CSS in the order the styles were applied. (by [@alexander-akait](https://github.com/alexander-akait) in [#21576](https://github.com/webpack/webpack/pull/21576)) - Patch the HTML `` in place on hot update instead of forcing a full reload, including when a `