Update dependency webpack to v5.112.2 #27
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
andylockran/TwoFacedCalendar!27
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/webpack-5.x-lockfile"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
5.52.0→5.112.2Release Notes
webpack/webpack (webpack)
v5.112.2Compare Source
Patch Changes
Reduce repeated scans when concatenating imported modules. (by @xiaoxiaojx in #22865)
Avoid allocating CSS module sets for single-group chunks. (by @xiaoxiaojx in #22866)
Return the value of every module type loaded with
importModule(). (by @alexander-akait in #22869)v5.112.1Compare Source
Patch Changes
Rebuild a lazy barrel in watch when what it defers changes, and keep the imports and re-exports it still runs. (by @aryanraj45 in #22699)
Rebuild under
cacheUnaffecteda module whose re-export target goes or returns. (by @aryanraj45 in #22749)Fix "Self-reference dependency has unused export name" for CommonJS namespace re-exports. (by @alexander-akait in #22791)
Fix
exportType: "style"CSS modules throwing outside the runtime chunk. (by @lazerg in #22833)Fix crash when a CSS module with
exportType: "style"imports an ignored stylesheet. (by @codeXsidd in #22846)Keep empty process environment variables that
.envfiles don't define inDotenvPlugin. (by @alexander-akait in #22794)Rehash an ESM entry chunk when a chunk it imports by file name changes. (by @alexander-akait in #22804)
Handle a NUL inside an HTML CDATA section the way the parsing spec does. (by @dependabot in #22811)
Keep module exports live across chunks, runtimes, HMR and eval, sparing globals. (by @alexander-akait in #22733)
Await asynchronous modules that
ProvidePlugininjects into ES modules. (by @alexander-akait in #22728)Keep a resolve that ends after the compiler closed from throwing. (by @alexander-akait in #22795)
Preserve string names passed to SharedWorker constructors. (by @bjohansebas in #22770)
Preserve string contents when extracting source map comments. (by @bjohansebas in #22768)
Scope strict-mode, async and generator block function declarations to their block. (by @alexander-akait in #22800)
Preserve raw dotenv values when reusing cached environment files. (by @Eshiv-Pandey in #22787)
Preserve assigned or patched built-ins, conversions and pattern targets. (by @aryanraj45 in #22761)
Keep globals a
globalThiswrite replaces, andsliceon a patched array. (by @alexander-akait in #22862)Skip HTML script tags for shared chunks that emit no JavaScript. (by @bjohansebas in #22779)
Keep the digits Firefox lays out a minified CSS percentage with. (by @alexander-akait in #22718)
Reject a second
srcsetdescriptor after a0xdensity descriptor. (by @alexander-akait in #22741)Minify JavaScript faster, folding string methods on constants and
x -= 1. (by @alexander-akait in #22823)Shorten minified JavaScript, and keep it running like its source. (by @alexander-akait in #22717)
Drop more unused functions, arguments, calls, global reads and variable copies when minifying JavaScript. (by @alexander-akait in #22789)
Minify JavaScript smaller where swc does, and fold a function's
lengthright. (by @alexander-akait in #22826)Reduce JavaScript output size where oxc or swc produce smaller output. (by @alexander-akait in #22829)
Update watchpack to 2.6.3 and rebuild on a
node_modulescreated mid-build. (by @alexander-akait in #22743)Support
concatenateModuleswithcacheUnaffected. (by @alexander-akait in #22746)Update schema-utils to 4.8.1. (by @alexander-akait in #22774)
Keep CSS fallbacks, vendor overrides,
oklch()hues and HTML elements. (by @alexander-akait in #22753)Validate
CleanPluginandDotenvPluginoptions with a precompiled check, so valid options no longer compile their schema at startup. (by @alexander-akait in #22758)Speed up startup and CSS minification, sharing the compile cache with workers. (by @xiaoxiaojx in #22706)
Use precise, generic types for modules, parsers, generators, stats and loaders. (by @alexander-akait in #22731)
v5.112.0Compare Source
Minor Changes
Apply
pluginsset on a multi-configuration array to theMultiCompiler. (by @alexander-akait in #22702)Add
optimization.minimize.css.dropOverriddenDeclarations, dropping a declaration a later one overrides where no target is named. (by @alexander-akait in #22175)Export more plugins under their scope, move eleven loose exports under theirs, deprecate the old, and expose
template.DependencyTemplate,module.NullFactoryandutil.makeSerializable. (by @alexander-akait in #22261)Let
util.makeSerializabletake several requests, current one first. (by @alexander-akait in #22340)Emit the source map
scopesfield, so a debugger resolves imported ESM bindings by name. (by @alexander-akait in #21999)Add
library.entryExports: "all"to expose the exports of every entry module. (by @alexander-akait in #22235)Recognize a required
constbinding assigned toexportsas a re-export. (by @hai-x in #22276)Accept glob patterns in more path, module and file filter options. (by @hai-x in #22422)
Bundle a run of inline
<script>tags into one chunk the page can inline. (by @alexander-akait in #22188)Add
module.parser.javascript.topLevelThisfor classic-scriptthissemantics. (by @alexander-akait in #22193)Add
module.parser.html.chunkNameand awebpackChunkNamecomment for tags. (by @alexander-akait in #22200)Add
include/excludeversion and request filters to shared modules. (by @alexander-akait in #22297)Keep module side-effect information in ESM output as PURE annotations. (by @alexander-akait in #21789)
Add
optimization.splitChunks.dedupDepthto discover chunk intersections. (by @alexander-akait in #22240)Add
optimization.minimizeOptions.json, on by default withfutureDefaults. (by @alexander-akait in #22286)Add
SSRManifestPluginand fix server-rendered CSS collection and adoption. (by @alexander-akait in #21913)Add an
ignorehook tooutput.copyand keep unfollowedfromsymlinks. (by @alexander-akait in #22216)Add
optimization.minimize.css.convertApproximateColors. (by @alexander-akait in #22157)Add XML parsing and SVG/XML minification with data URLs and attribute sorting. (by @alexander-akait in #22269)
Extract CSS/HTML license comments like JS and safely shorten CSS gradients. (by @alexander-akait in #22408)
Resolve an async
DefinePlugin.runtimeValueover an asyncbeforeParsehook. (by @alexander-akait in #22210)Add CSS
customMedia/customSelectorsminimize options; resolve chained names. (by @alexander-akait in #22360)Rename the
Harmony*names toESM*and deprecate the old spellings. (by @hai-x in #22283)Reduce
css.syntax/html.syntaxtoparser,printer,SourceProcessorwith one node path. (by @alexander-akait in #22233)Add a JavaScript
SyntaxTreeread like the CSS one, andtoEstreeObject. (by @alexander-akait in #22608)Fix minified code that threw, and add
pure_conversionsandpure_heritage. (by @alexander-akait in #22473)Shorten more CSS values and selectors, fold longhands, order declarations and gather layer blocks. (by @alexander-akait in #22442)
Add
optimization.minimize.css.charset;falsedrops@charsetfor UTF-8 CSS. (by @alexander-akait in #22632)Patch Changes
Join rules a gathered
@layerleaves adjacent, and an at-rule with a later one (by @alexander-akait in #22204)stating the same condition; read what a condition declares.
Read escaped CSS names and functions as spelled, and minify them unescaped. (by @alexander-akait in #22262)
Minify JavaScript, CSS and HTML assets whose names carry a
#fragment. (by @alexander-akait in #22277)Require
minimizer-webpack-plugin5.12, so inline scripts in HTML minify again. (by @alexander-akait in #22296)Minify the attributes of an HTML tag without rewriting the template in it. (by @alexander-akait in #22166)
Order joined at-rule selector lists and gather a repeated large
@layerblock. (by @alexander-akait in #22224)Preserve case-sensitive template identifiers when minifying HTML tag attributes. (by @bjohansebas in #22177)
Match Acorn's strict directives, Unicode identifiers and expression validation. (by @bjohansebas in #22185)
Skip concatenating modules when
optimization.providedExportsis disabled. (by @hai-x in #22410)Join rules a nesting lowering or duplicate drop left for a second pass. (by @aryanraj45 in #22268)
Write U+00A0 in a minified HTML attribute as the character, not
. (by @alexander-akait in #22208)Escape a foreign
<script>or<style>body, which is character data. (by @alexander-akait in #22233)Name the runtime module whose generation fails while hashing. (by @alexander-akait in #22203)
Rebuild a module in watch when its missing unused dependencies swap. (by @alexander-akait in #22693)
Rebuild in watch mode when a file is deleted while a build is running. (by @alexander-akait in #22650)
Take out the declaration a lowered shorthand writes over, which its source spelling made look like a fallback. (by @aryanraj45 in #22270)
Read a foreign
<script>or<style>body as character data, not as raw text. (by @alexander-akait in #22258)Keep an inline
<style>body as written when rebuilding a page webpack emitted. (by @alexander-akait in #22265)Fix minified HTML for
stylespellings, CSS quotes,<noscript>and a BOM. (by @alexander-akait in #22370)Record a build dependency required through a spread on Bun. (by @alexander-akait in #22230)
Write a nested selector opening on a combinator against its parent the way the printer writes one. (by @aryanraj45 in #22271)
Fix missing async stylesheets with a shared runtime. (by @bjohansebas in #22659)
Support deferred imports introduced by hot updates. (by @bjohansebas in #22668)
Fix trailing commas in
require.resolve()andrequire.resolveWeak()calls. (by @bjohansebas in #22658)Keep regular expressions, functions and plugins distinct in resolver caches. (by @bjohansebas in #22667)
Order the list a lowered nested selector lands in on what is written, not on what was. (by @aryanraj45 in #22287)
Hoist a vendor-prefixed nested rule for a target that reads no nesting. (by @aryanraj45 in #22308)
Name a hoisted nested rule in the dark-scheme copy it writes. (by @alexander-akait in #22318)
Minify data: URL payloads in HTML attributes and
new URL, and web manifests. (by @alexander-akait in #22300)fold a fallback's colors over the author's arguments, and print with (by @aryanraj45 in #22314)
recurseBlocks: falserather than throwingRead a regular expression repeating a capture group name in linear time. (by @alexander-akait in #22187)
Make lazy barrels defer import declarations and keep no deferral across compilations. (by @hai-x in #22359)
Invalidate unaffected caches when connection activity or async status changes. (by @bjohansebas in #22431)
Order concatenated re-exports deterministically when their source order ties. (by @alexander-akait in #22697)
Regenerate a module's exports when a require() cycle forms or breaks around it. (by @aryanraj45 in #22644)
Recompute re-exports, code and warnings when a module goes missing or returns. (by @bjohansebas in #22432)
Preserve loader resolution dependencies across cached rebuilds. (by @bjohansebas in #22430)
Read unwatched changes afresh and wait for restarted watch compilers to finish. (by @alexander-akait in #22646)
Parse loader output for
.wasmas JavaScript when async wasm is auto-enabled. (by @alexander-akait in #22556)Remove modules an async chunk inherits from a named parent chunk grown later. (by @hai-x in #22555)
Fix JavaScript minifier crashes, altered behavior, lost comments, unparsable output and null source map sources, including parameter aliases, ESTree trees and preserved names, and stop it writing into the caller's parse options. (by @alexander-akait in #22352)
Preserve the source phase of dynamic WebAssembly import contexts. (by @bjohansebas in #22604)
Await every async entry before resolving an ESM library import. (by @bjohansebas in #22617)
Keep unknown
import.metaproperties per module, alike for aliases and direct use. (by @bjohansebas in #22618)Return WebAssembly modules directly from eager and weak source imports. (by @bjohansebas in #22606)
Handle missing ESM hot update manifests in Node.js without failing HMR checks. (by @bjohansebas in #22613)
Speed up JavaScript parsing: comment lookup, the tokenizer and the grammar. (by @bjohansebas in #22179)
Name a core module external by its key whichever spelling the code uses. (by @alexander-akait in #22565)
Prefix and drop 2009 flexbox names, keeping them where a box lays out by them. (by @alexander-akait in #22320)
Keep
initialwhere Gecko or WebKit reads the property's keyword apart. (by @aryanraj45 in #22176)Fold
calc()as lightningcss does, keeping it where a bare value is refused. (by @aryanraj45 in #22205)Keep a
color-mix()whose hue rests on a gray's conversion residue. (by @alexander-akait in #22198)Keep a shorthand's initial keyword where it parts two keywords of another slot. (by @dependabot in #22518)
Group
lib/andlib/dependencies/sources into directories. (by @alexander-akait in #22118)Treat a browserslist target given at a bare major version (e.g.
safari 10) as<major>.0when a feature's first supported version is a[major, minor]pair, so it is no longer reported as unsupported. (by @Eshiv-Pandey in #22280)Keep the last HMR update with
output.clean; stop rechecking removed files. (by @alexander-akait in #22339)Read and print a CSS backslash as the spec does, and a NUL as U+FFFD. (by @alexander-akait in #22201)
Make minified CSS and HTML stable on a second pass, even for truncated input. (by @alexander-akait in #22290)
Minify a merged
<style>run as one sheet, closing each where its input ended. (by @alexander-akait in #22302)Minify JavaScript with webpack's printer under
futureDefaults,terserotherwise. (by @alexander-akait in #22217)Preserve
wrappedContextRegExpflags when rebuilding context request matchers. (by @Eshiv-Pandey in #22303)Minify CSS
@supports,@importand@custom-mediaconditions, and exponent numbers. (by @alexander-akait in #22347)Fold unitless
hsl()/hwb()channels, and only where the separators are valid. (by @alexander-akait in #22242)Split
@valueimports on thefromkeyword, not a substring in the path. (by @Eshiv-Pandey in #22306)Destructure a dotted
DefinePluginkey whose value is falsy or a runtimeValue. (by @alexander-akait in #22215)Make
Stats.hasErrors()read errors through theprocessErrorshook (viagetErrors()), matchinghasWarnings(), so a plugin that filters errors out of the hook is no longer contradicted byhasErrors(). (by @Eshiv-Pandey in #22281)Allow wrapping an external concatenated module, now asked of the module itself, and re-exporting a JSON or asset
defaultas a namespace object. (by @hai-x in #22226)Match
urlHintsrules written withand,or,notandglobconditions; profile hook map taps, such as resolver and parser hooks, inProfilingPlugin; reportimport.metaoption errors insiderequire.ensurecallbacks, not crash; and replaceany,objectandFunctionwith precise types in the type definitions. (by @alexander-akait in #22681)Reduce CSS and HTML build time and memory allocation. (by @alexander-akait in #22135)
Reuse free names instead of re-parsing modules for the entry IIFE rename. (by @hai-x in #22206)
Release each module's ast once scope-analysed, and encode each export path once. (by @alexander-akait in #22241)
Export a module library entry's default expression as its own binding, and keep (by @hai-x in #22227)
the export helpers where the entry is not inlined.
Give a wrapped concatenated body the same function header as a module factory. (by @hai-x in #22254)
Skip reading every asset when no content hash is named. (by @alexander-akait in #22256)
Cut graph, cached set, lazy barrel and ESM import memory and allocations. (by @alexander-akait in #22289)
Stop a module source from being held as both a string and a buffer. (by @alexander-akait in #22294)
Read the browserslist data and options schema only when a build needs them. (by @alexander-akait in #22324)
Release the eval devtool's cached module sources after wrapping them. (by @alexander-akait in #22358)
Release the rendered module sources after emitting the chunks. (by @alexander-akait in #22365)
Cut the peak memory and time of minifying through webpack's printer. (by @alexander-akait in #22368)
Shrink minified JS: unwrap IIFEs, fold calls, drop dead code, split arrays. (by @alexander-akait in #22393)
Cut JavaScript minifier time and memory; keep token positions in large inputs. (by @bjohansebas in #22329)
Keep the
calc()around asteps()countjump-nonewould reject bare. (by @alexander-akait in #22168)Split the CSS syntax module into a parser file and a printer file. (by @alexander-akait in #22222)
Update enhanced-resolve to 5.26.0. (by @alexander-akait in #22358)
Update watchpack to 2.6.1. (by @alexander-akait in #22670)
Split the HTML syntax module into a parser file and a printer file. (by @alexander-akait in #22223)
Rename classes in
lib/so each says what it does and no two share a name. (by @alexander-akait in #22361)Keep the remote fallback index aligned with registered container externals when an
internalexternal precedes a real one. (by @Eshiv-Pandey in #22362)Stop a minified inlined chunk leaving a doubled
;in its<script>. (by @alexander-akait in #22370)Stop
mergeDistantRulesmangling rules or reorderingall, and merge more. (by @alexander-akait in #22370)Minify by parsing with webpack's own parser rather than terser's. (by @alexander-akait in #22397)
Read JavaScript with webpack's parser alone when minifying, refusing early errors. (by @alexander-akait in #22397)
Parse an
assert(...)call after an import with no semicolon, and a regular expression afteryieldin a generator method. (by @alexander-akait in #22406)Keep the private names a direct
evalreads when mangling. (by @aryanraj45 in #22412)Keep a class dropped for its effects where they read a private name it declares. (by @aryanraj45 in #22421)
Parenthesize the right side of a private
in, ayield,await, privateinor optional chain tagging a template, and aletorasyncstarting a statement or loop head, where the minifier printed code that no longer parsed or read otherwise. (by @aryanraj45 in #22437)Keep a name a parameter list or catch parameter reads from resolving to what the function body or catch block declares, which the minifier renamed or dropped as unused. (by @aryanraj45 in #22439)
Scope and export a CSS Modules
@valuethe same way whether local or imported. (by @alexander-akait in #22443)Keep CSS
border: noneand gradient fallbacks for units a target cannot read. (by @alexander-akait in #22567)Keep minified CSS safe for older browsers; drop dead fallbacks and overrides. (by @alexander-akait in #22696)
Keep CSS rules apart from a neighbor whose selector no browser parses. (by @alexander-akait in #22634)
Keep an
:nth-*()argument with a space after its sign as written. (by @alexander-akait in #22700)Keep minified CSS readable by browsers the compat data does not cover. (by @alexander-akait in #22701)
Keep a module its chunk still needs after
compilation.rebuildModule(). (by @alexander-akait in #22705)Keep a CSS rule nested under a selector opening on a combinator when lowering. (by @alexander-akait in #22707)
Use module paths for webpack's built-in minimizers so parallel minification can load them directly in workers instead of serializing their function sources. (by @xiaoxiaojx in #22309)
Keep stats from an earlier build readable after a later build no longer has one of their modules. (by @alexander-akait in #22695)
v5.111.1Compare Source
Patch Changes
Throw on a write to an imported binding without losing concatenation. (by @alexander-akait in #22141)
Keep the
</html>a page was written with, whatever opened the element. (by @aryanraj45 in #22103)Look an attribute up by what its value decodes to, not how it was spelled. (by @aryanraj45 in #22107)
Minify HTML by what a value says rather than how it was spelled. (by @alexander-akait in #22154)
Follow HTML template form and frameset rules during tree construction. (by @dependabot in #22129)
Keep the whitespace
calc()needs around+and-in a custom property. (by @alexander-akait in #22150)Keep an attribute's delimiter and spell its value back where quoting is frozen. (by @alexander-akait in #22119)
Rewrite an attribute value the source spelled with character references. (by @aryanraj45 in #22110)
Unquote an HTML attribute value carrying a vertical tab. (by @alexander-akait in #22162)
Keep a shadow's spread and canonicalize a merged selector list. (by @alexander-akait in #22101)
Leave out an implied tag and merge adjacent runs on the first pass. (by @aryanraj45 in #22121)
Minify in one pass what a second pass of the CSS minifier used to find. (by @alexander-akait in #22106)
Cover the CSS lookup tables no stylesheet in the corpus reaches. (by @aryanraj45 in #22126)
Keep
initialwhere an engine reads the property's initial keyword apart. (by @aryanraj45 in #22128)Join the CSS rules a cut leaves adjacent, and keep a value an escape ate. (by @alexander-akait in #22108)
Drop the dead CSS a cut leaves, and join more of the blocks that print alike. (by @alexander-akait in #22111)
Run the printer equivalence suite against Firefox as well as Chrome. (by @aryanraj45 in #22151)
Finish in one CSS pass the joins, drops and collapses left to a second. (by @alexander-akait in #22117)
Move the context module sources into
lib/context/. (by @alexander-akait in #22115)Declare loader context types in JSDoc instead of hand-written
.d.tsfiles. (by @alexander-akait in #22116)Emit a failing module's stack relative, and name what a tap failed with. (by @alexander-akait in #22122)
Finish in one CSS pass the drops, layer gathers and joins left to a second. (by @alexander-akait in #22120)
Speed up CSS parsing by stepping over dropped selector preludes in bytes. (by @alexander-akait in #22142)
Record hoisted, module and block declarations while parsing, not by re-walking. (by @alexander-akait in #22147)
Fold more enumerated attribute values and drop those naming no keyword. (by @alexander-akait in #22148)
Halve the CSS minifier's browser-version tables by narrowing their element type. (by @alexander-akait in #22140)
Make each
optimization.minimize.cssswitch govern its own rewrite alone. (by @alexander-akait in #22140)Join the rules a top-level
@layergather leaves meeting at the seam. (by @alexander-akait in #22140)Gather a CSS layer past a rule that writes only a different one. (by @alexander-akait in #22154)
Order HTML attributes by what reaches the output, and read values decoded. (by @alexander-akait in #22146)
Drop a fallback declaration every
browserslisttarget reads past. (by @alexander-akait in #22158)Fix module library exports lost under cache or missing behind a re-export. (by @hai-x in #22114)
v5.111.0Compare Source
Minor Changes
Enable
output.moduleby default withfutureDefaultson ESM-capable targets. (by @alexander-akait in #22088)Remove
experiments.outputModule, setoutput.moduleto emit ESM instead. (by @alexander-akait in #22011)Add
output.copyto copy files and directories into the output directory. (by @alexander-akait in #21938)Accept a file URL in any spelling Node reads where an absolute path is taken. (by @alexander-akait in #22012)
Minify inline CSS and JSON via
renderEmbeddedSource, exporting webpack's own. (by @alexander-akait in #21993)Export
cssMinifyandhtmlMinifyoncss.syntaxandhtml.syntax. (by @alexander-akait in #21953)Make
processResultasync and let a tap rename the asset it rewrote. (by @alexander-akait in #21854)Lower a CSS spelling a target cannot read and write a color fallback before one. (by @alexander-akait in #21926)
Allow optional filesystem cache build dependencies. (by @xiaoxiaojx in #21849)
Add
output.environment.topLevelAwaitand await every async ESM entry. (by @alexander-akait in #21915)Add
unusedSymbolsandpseudoClasses, and evaluate a CSS color function. (by @alexander-akait in #21927)Drop an implied shorthand slot, fold a math function, tighten color conversion. (by @alexander-akait in #21929)
Add
module.parser.javascript.specNamespaceObjectfor spec namespace objects. (by @alexander-akait in #22049)Drop what is already said or only a gone engine reads, add
lowerUnsupported. (by @alexander-akait in #21931)Add
normalizeUrlAttributes,mergeScripts, boolean and token switches. (by @alexander-akait in #21960)Minify an event handler attribute, and name the production each script body is. (by @alexander-akait in #21968)
Add source-map, asset, module, bailout, federation hints; group config checks. (by @alexander-akait in #21961)
Lower CSS nesting,
:dir()and custom at-rules; gate case folding and escapes. (by @alexander-akait in #21950)Add
optimization.minimize.css.mergeDistantRulesto join rules across a gap. (by @alexander-akait in #21969)Patch Changes
Minify an embedded body through the embedded path, dropping three html options. (by @alexander-akait in #21936)
Take a minified
styleattribute's answer whatever quoting it needs. (by @alexander-akait in #21936)Name chunk imports in the chunk loader, not at each import site. (by @alexander-akait in #22076)
Repair hashed names; under HMR bake hashed url maps and reload moved css names. (by @alexander-akait in #21916)
Enable
output.moduleformoduleandmodern-modulelibrary types. (by @alexander-akait in #22071)Name an anonymous
export default classbefore its static initializers run. (by @alexander-akait in #21910)Throw on a non-optional read past an undefined
DefinePluginmember. (by @alexander-akait in #22017)Reject a fulfilled async cycle member with the cycle's evaluation error. (by @alexander-akait in #21921)
Escape external requests in generated ESM imports and star reexports. (by @bjohansebas in #22078)
Fix stack overflows in ESM library star reexport cycles with externals. (by @bjohansebas in #22080)
Preserve live bindings when reexporting external ESM exports. (by @bjohansebas in #22082)
Use configured external requests in ESM star reexports; reject property paths. (by @bjohansebas in #22079)
Preserve import attributes on ESM library star reexports of externals. (by @bjohansebas in #22081)
Fail the build when a runtime module's code generation throws while hashing. (by @alexander-akait in #22034)
Settle a css chunk load without a DOM where its stylesheet cannot be read. (by @alexander-akait in #21970)
Await a deferred import's async dependency that is evaluating-async. (by @alexander-akait in #21934)
Keep a color the CSS minifier would round where its channels are read back. (by @alexander-akait in #21923)
Refresh a cached module's
resolveOptionsfrom the factory, not the pack. (by @hai-x in #21945)Read a
<script type>decoded, so a reference-spelled type is minified. (by @alexander-akait in #21933)Read the extension out of a path-scoped rule's alternation, class or braces. (by @alexander-akait in #21946)
Keep an HTML attribute name or list token holding a foreign template delimiter. (by @alexander-akait in #22018)
Answer a name a module does not export from the spec namespace. (by @alexander-akait in #22092)
Give a deferred namespace the spec's exotic shape when the exports are known. (by @alexander-akait in #21939)
Give a JSON, text or CommonJS namespace the spec's exotic shape and identity. (by @alexander-akait in #22087)
Report a missing asset instead of a code generation deadlock. (by @alexander-akait in #21992)
Keep a concatenated CommonJS reference a separate statement, guarding it once. (by @alexander-akait in #21962)
Keep CSS module exports for a direct loader
importModule()call. (by @alexander-akait in #22047)Fix
import.metaandrequire.main, and scope-hoistimport.meta.main. (by @alexander-akait in #21973)Honor
resolve.fileSystemand say wheremodule.exprContextCriticalmoved. (by @alexander-akait in #22091)Release stale compilation data from nested children and idle watch builds. (by @alexander-akait in #22096)
Resolve a
@valueonce and then localize it, wherever it names an identifier. (by @alexander-akait in #22036)Release the printed-text store's text when the CSS printer drops it. (by @alexander-akait in #21958)
Skip a foreign dependency whose
isLazyis a flag when walking a lazy barrel. (by @alexander-akait in #21998)Move diagnostics to
buildInfo.diagnostics, persisting parse-time bailouts. (by @hai-x in #22055)Invalidate consumer codegen when an inlined export value changes. (by @xiaoxiaojx in #22020)
Rebuild DelegatedModule when DLL manifest metadata changes. (by @xiaoxiaojx in #22028)
Keep a CSS layer's blocks in order where one of them streams. (by @alexander-akait in #22044)
Refuse inlining const exports across sync cycles with binding reads. (by @xiaoxiaojx in #22085)
Escape a text run ending in
</, which the tag after it made a comment of. (by @aryanraj45 in #22086)Skip JS render sentinel scans on chunks without HTML. (by @xiaoxiaojx in #21974)
Minify an attribute by what its value says, not by how the source spelled it. (by @aryanraj45 in #22095)
Cut allocation and scanning in the CSS and HTML printers, output unchanged. (by @alexander-akait in #21997)
Emit less chunk-loading runtime. (by @alexander-akait in #22094)
Recognize the reflected attributes of
frame,frameset,marqueeanddir. (by @alexander-akait in #22003)Drop the
neo-asyncdependency in favor of a faster built-in async helper. (by @alexander-akait in #21959)Speed up cache serialization by cutting per-object lookups and call frames. (by @alexander-akait in #21994)
Update dependencies and match the
ReadFileSynctype to Node.js typings. (by @dependabot in #21919)Match acorn on
**arrows, LS/PS cooking, string export names,programreuse. (by @alexander-akait in #21666)Parse a regexp literal the running engine cannot build, and keep locations. (by @alexander-akait in #22009)
Parse without acorn, serialize parse-error locations, trim walker allocations. (by @alexander-akait in #21667)
Drop the
acorndependency in favor of webpack's own JavaScript parser. (by @alexander-akait in #22042)Name HTML chunks after their tags' urls, drop the JS copy, type
text/html. (by @alexander-akait in #22008)v5.110.3Compare Source
Patch Changes
Fix
import()options, circular reexport severity and namespace writes. (by @alexander-akait in #21867)Skip ESM interop when require() targets a module outside the concatenation. (by @hai-x in #21884)
Fix concatenated
require()in arequire.ensurecallback or a computed request. (by @hai-x in #21907)Keep
optimization.minimizea boolean; its options move tominimizeOptions. (by @alexander-akait in #21886)Fix mangled exports read through require() and a leaked internal reference. (by @alexander-akait in #21905)
Fix
newon a default import of a wrapped CommonJS module. (by @alexander-akait in #21876)Throw when a deferred namespace of an async module is forced while it evaluates. (by @alexander-akait in #21871)
Do not report a missing export for a name a side-effect-free barrel defers. (by @alexander-akait in #21874)
Fix queue, URL scheme, dotenv, HTTP module and persistent cache edge cases. (by @alexander-akait in #21901)
Evaluate a deferred import's async dependencies where the import sits. (by @alexander-akait in #21902)
Omit ambiguous
export *names from the module namespace. (by @alexander-akait in #21878)v5.110.2Compare Source
Patch Changes
Fix analyzable ESM baking around cycles, mixed-served wasm and style url maps. (by @alexander-akait in #21851)
Minify more HTML and CSS shorthands, and cut two costs off printing. (by @alexander-akait in #21842)
Report a named import that is never read when it names a missing export. (by @alexander-akait in #21856)
Fix ESM circular reexports, cyclic const TDZ, and defer evaluation order. (by @alexander-akait in #21852)
Stop
output.htmlemitting an unused JS chunk for each generated page. (by @alexander-akait in #21859)Stop emitting the CSS chunk loading runtime when every CSS chunk is initial. (by @alexander-akait in #21862)
Strip a BOM a loader put on a string, and shift a source map that counted it. (by @alexander-akait in #21857)
v5.110.1Compare Source
Patch Changes
Fix a capture-group-less
snapshot.managedPathsRegExp; speed up cache writes. (by @alexander-akait in #21843)Throw
SyntaxError, orWebAssembly.CompileError, from an unparsable module. (by @alexander-akait in #21847)Accept the
optimization.minimize: trueshorthand set by a plugin inapply(). (by @AgentEnder in #21845)v5.110.0Compare Source
Minor Changes
Wrap concatenated modules in lazy
__webpack_require__.cwaccessors and inlinerequire(), keeping a wrapped body's names and side effects intact. (by @hai-x in #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 recommendsoptimization.runtimeChunk. Enable every check not set individually withperformance.all, report hints in stats only withperformance.hints: "stats", and get them in a stable order that leaves the build hashes unchanged. (by @alexander-akait in #21841)Add the
descriptionRelativePathmodule rule condition. (by @alexander-akait in #21705)Add OS-independent
globmatching to module rules. (by @alexander-akait in #21771)Report inner-graph, AMD and bare
modulebailouts inoptimizationBailout. (by @alexander-akait in #21740)Allow marking externals as side-effect-free with a
sideEffectsflag. (by @alexander-akait in #21712)Give externals the original request of a context module element. (by @alexander-akait in #21780)
Add the
externalsPresets.nodeModulespreset with anallowlistoption to externalize installed packages, replacing thewebpack-node-externalsplugin. (by @alexander-akait in #21569)Add
output.library.umdAmdContainerfor an AMD-style loader branch in UMD. (by @hai-x in #21770)Resolve
@custom-mediavalues that aretrue/falseor name another custom media. (by @alexander-akait in #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 in #21576)Patch the HTML
<head>in place on hot update instead of forcing a full reload, including when a<script>that never executed is removed. (by @alexander-akait in #21624)Scope counter names in CSS modules; fix the
counter()counter-style andanimationtimeline keywords. (by @alexander-akait in #21600)Derive
import defer/import sourcefrom the target and fix the source phase. (by @alexander-akait in #21810)Emit analyzable ESM urls for chunks, assets, styles, workers and wasm. (by @alexander-akait in #21788)
Tree shake CommonJS:
module.exportsobject literals, exports destructured from arequire()binding, unused method requires, and unused side-effect-freerequire()calls and reexports. (by @alexander-akait in #21841)Resolve relative entry
baseUrivalues and bake one side of a hash cycle. (by @alexander-akait in #21750)Minify CSS further, only where the document is unchanged: shorthands and box longhands,
font-weight,<position>andfont-stretchkeywords, colors (polar, Lab andhsl()converted to hex), numbers, times, zero units,calc()and every math function the spec names folded over constants, selector lists, An+B, keyframe selectors, media-feature ranges,unicode-range,transitionlayers,display, transforms, gradients, font families, identical repeated declarations, and rules an identical later one makes dead. Abilities are read off the target browsers,vendorPrefixesadds and drops vendor prefixes for them, andrewriteCustomPropertiesshortens custom property values. Minification never changes whether a declaration parses, and beautifying keeps every rule. (by @alexander-akait in #21841)Safely minify CSS (with source maps) and HTML assets when
optimization.minimizeis enabled, unless a minimizer is already configured for them, making only transformations an engine cannot tell apart. Every rewrite is named as an option, so it can be switched off. (by @alexander-akait in #21841)Minify HTML further where the parsed document is unchanged: drop redundant quotes, whitespace nothing renders, escapes text does not need, implied tags, optional end tags nothing prints behind, empty attributes and nested empty elements; fold enumerated values and casing; normalize each attribute against the element it is on; and rewrite
style, token lists,srcset,sizes, URL, integer and boolean attributes, viewportcontent, inline<style>and a JSON<script>body through their own grammars. Adds theoptimization.minimize.htmloptionscollapseWhitespace,mergeStyles,minifyConditionalComments,minifySrcdoc,preserveComments,removeEmptyAttributes,removeEmptyElements,removeImpliedTags,removeRedundantAttributes,sortAttributesandsortTokenLists, and keeps an end tag the parent, the next element or the adoption agency would otherwise restructure the tree over. (by @alexander-akait in #21841)Suggest the closest name or a casing fix anywhere in a failed request. (by @alexander-akait in #21727)
Add aggregated
shutdownhook toMultiCompiler. (by @bjohansebas in #21578)Report which compilers changed on the MultiCompiler
donehook. (by @bjohansebas in #21580)Add
[containedpath]/[containedfile]placeholders, used for[path]/[file]of asset and html modules withexperiments.futureDefaults. (by @alexander-akait in #21592)Support an object for an entry's
htmlthat overridesoutput.htmlper option. (by @alexander-akait in #21574)Configure or exclude each asset type's minifier via
optimization.minimize. (by @alexander-akait in #21663)Support printing CSS and HTML beautified as well as minified. (by @alexander-akait in #21660)
Add
renderEmbeddedSource, and minify what it offers out of the box. (by @alexander-akait in #21830)Report bindings named
eval,argumentsor reserved words in ES module output. (by @alexander-akait in #21567)Emit no development source map for module libraries, or any with futureDefaults. (by @alexander-akait in #21839)
Speed up builds and cut memory: faster CSS, HTML and JavaScript parsing and minification, a built-in scope analyzer replacing
eslint-scope, faster dependency hot paths, module diagnostics, CommonJS export scanning and concatenated module renaming, runtime modules, parsers, generators and dependencies loaded only when used, one file watcher pool shared between MultiCompiler children, and lower parser, graph and startup memory. (by @alexander-akait in #21841)Improve tree-shaking for a namespace reexported as default, and fix
import d from "./mod"; d.memberreadingundefinedin that case. (by @alexander-akait in #21841)Warn on cross-kind CSS module export conflicts and let the class win. (by @alexander-akait in #21538)
Add
output.resourceHints.dedupeto skip prefetch links for already preloaded/prefetched chunks. (by @alexander-akait in #21386)Patch Changes
Let a memory-cache etag mismatch fall through to the file cache instead of reporting a miss. (by @alexander-akait in #21624)
Determine provided exports in dependency order, so a build's module hashes no longer depend on what the persistent cache held. (by @alexander-akait in #21630)
Emit no dead module and no failing require for an
asset-urlexternal. (by @alexander-akait in #21713)Fix names, hidden devtools and cache reuse for CSS maps inlined into JS. (by @alexander-akait in #21558)
Follow the HTML spec more closely when parsing and printing: frameset content, quirks paragraphs and selects,
<![CDATA[outside foreign content as a bogus comment,<?target data?>as a processing instruction,</>dropped, comment data and DOCTYPE identifiers read from the tokenizer states, attributes merged from a repeated<html>/<body>tag, legacy JavaScript script types, voidkeygenand font format detection — and hand back the tree a parsed document was built from when printing it. (by @alexander-akait in #21841)Clear a
Watching'sblockedflag when its build starts, so it reports only a child actually waiting for its MultiCompiler parent. (by @bjohansebas in #21639)Fix AMD
define()output using the wrong module and exports argument names. (by @hai-x in #21814)Fix
ReferenceErrorfromimport.meta.mainusing the wrong module argument. (by @hai-x in #21620)Leave a
@namespaceURI alone instead of resolving and rewriting it as an asset. (by @alexander-akait in #21658)Resolve escaped CSS names, and scope a grid area cell name as one name. (by @alexander-akait in #21665)
Track exports usage of side-effect-free modules an active import() evaluates. (by @hai-x in #21623)
Resolve absolute symlink targets and treat an unreadable context as missing. (by @alexander-akait in #21647)
Fix corrupted icon URLs in a
.webmanifestwith a BOM or non-ASCII text. (by @alexander-akait in #21655)Respect
strictThisContextOnImportsforrequire()member calls. (by @hai-x in #21601)Fix
import.meta,[object Object]asset urls and crashes in build-time executed modules. (by @alexander-akait in #21841)Inherit sideEffects past a type-only nested package.json for files under node_modules. (by @xiaoxiaojx in #21686)
Do not fail directory creation when the file system reports it already exists. (by @alexander-akait in #21698)
Fix top-level
usingandawait usingdeclarations in modules. (by @alexander-akait in #21557)Fix
DefinePluginoptional chains reading an undefined object member. (by @lazerg in #21823)Fix MultiCompiler: compute the common
outputPathby whole path segments, run again after a dependency validation failure, and recover watch mode from a fatal child error without leaking watchings. (by @alexander-akait in #21841)Keep a nested bundle's runtime tables separate when bundling webpack output. (by @alexander-akait in #21568)
Keep the runtime out of strict mode when
output.globalObjectreadsthis. (by @alexander-akait in #21715)Run an even-priority
__webpack_require__.Ohandler without waiting. (by @alexander-akait in #21803)Treat top-level
thisin a classic worker entry as its global scope. (by @alexander-akait in #21720)Rehash runtime modules whose code changes under a content-named filename. (by @alexander-akait in #21828)
Fix namespace object reexports and string export names in module library output and emit a CommonJS entry's default as
export default. (by @alexander-akait in #21589)Keep tree-shaken JSON arrays as arrays when a prototype property is read. (by @hai-x in #21599)
Generate every CSS and HTML lookup table into
lib/{css,html}/data.jsfrommdn-data,color-nameand the spec IDL — including the value-type facts read out of the CSS value-definition grammars — leaving bothsyntax.jsfiles algorithm only. (by @alexander-akait in #21841)Support UNC paths in module and context replacement plugins. (by @avivkeller in #21645)
Emit less runtime code: shorter syntax where
output.environmentallows, no IIFE for aRuntimeModulewithout locals, no unread__webpack_esm_id__andexports.idchunk exports, and an ESM entry chunk installing its own modules from its local bindings instead of importing itself. (by @alexander-akait in #21841)Release the compilation and file system caches retained after
compiler.close(). (by @alexander-akait in #21603)v5.109.2Compare Source
Patch Changes
Resolve aliases pointing at a package directory whose name ends with
.jsagain. (by @alexander-akait in #21542)Name CSS sources in source maps by their resource path, without the
cssprefix. (by @bjohansebas in #21536)Delete no longer referenced files from the filesystem cache directory after storing the cache, age them by recorded time so restored caches are cleaned too, and collect every fully expired pack in one store instead of one per build. (by @bjohansebas in #21528)
Report
"universal"as the loader context target for the universal target. (by @alexander-akait in #21540)Skip
require().propin dead branches gated by inlined imported constants. (by @hai-x in #21517)Annotate configuration options and public hooks in the generated types with the
@sinceJSDoc tag. (by @bjohansebas in #21473)v5.109.1Compare Source
Patch Changes
Fix stray semicolon emitted before an imported call following a parenthesized sequence element. (by @alexander-akait in #21533)
Make
require(esm)module.exportsre-export analysis independent of module processing order. (by @alexander-akait in #21521)Ignore ERR_SERVER_NOT_RUNNING on lazy-compilation backend dispose so
compiler.close()succeeds on Bun. (by @alexander-akait in #21521)Name the failing key when DefinePlugin fails to evaluate a
typeofvalue. (by @alexander-akait in #21503)Improve Deno compatibility: guard
setNoDelayand force-close connections on lazy-compilation backend dispose, and return a realArrayBufferfrom the Node async/sync wasm loader soWebAssembly.instantiateaccepts it. (by @alexander-akait in #21524)Speed up the HTML parser and cut its peak memory: module-scope helpers/state and tokenizer callbacks, plus exact AST column pre-sizing. (by @alexander-akait in #21492)
Track CommonJS build dependencies by parsing sources when
require.cachechildren are unavailable (e.g. Bun). (by @alexander-akait in #21531)Cook common string-literal escapes on the JS parser fast path and own the tokenizer's cold-path readers. (by @alexander-akait in #21500)
Build the CSS
parseA*AST on the SoA store instead of node classes, cutting parse memory and time. (by @alexander-akait in #21498)Speed up and cut memory of the experimental CSS and HTML parsers: drop two derivable AST node columns, and scan long string, url, comment, and plaintext token bodies natively. (by @alexander-akait in #21504)
Speed up non-modules CSS parsing: skip redundant token re-reads, drop selector-prelude tokens without materializing nodes, allocate rule preludes lazily, and fast-path empty list seals. (by @alexander-akait in #21511)
Speed up stats generation and cut its peak memory: reuse cached sort comparators instead of thrashing the comparator caches on every sort, and drop redundant module-graph lookups and allocations in the extractors. (by @alexander-akait in #21506)
Speed up CSS parsing: byte-range function-name checks, indexed sibling lookahead. (by @bjohansebas in #21520)
Reduce allocations and redundant work across the code-generation, module-concatenation, exports/usage-analysis, hashing, and chunk-splitting hot paths. (by @alexander-akait in #21516)
Enable the Node.js compile cache in the webpack CLI entry point. (by @bjohansebas in #21523)
Encode the persistent cache with V8's value serializer. (by @avivkeller in #21514)
Speed up SplitChunksPlugin: reject non-subset chunk sets with 64-bit signatures, cache unnamed entry keys, and drop per-module closures. (by @avivkeller in #21529)
Initialize
NormalModule._astin the constructor so each instance keeps a single hidden-class shape. (by @alexander-akait in #21515)Reduce allocations in the binary serialization hot paths. (by @alexander-akait in #21526)
Deduplicate and simplify several lib modules and speed up AggressiveMergingPlugin. (by @alexander-akait in #21525)
Rename nested
const/let __webpack_require__and__webpack_exports__declarations in bundled webpack output. (by @hai-x in #21508)v5.109.0Compare Source
Minor Changes
Default
experiments.typescriptto"auto", enabling built-in TypeScript support on Node.js >= 22.6 when no TypeScript loader is registered. (by @alexander-akait in #21398)Default
experiments.css,experiments.htmlandexperiments.asyncWebAssemblyto"auto", enabling built-in support unless a loader is registered for those files; modules with inline or hook-injected loaders (e.g. html-webpack-plugin templates) keep being parsed as JavaScript. (by @alexander-akait in #21365)Add
output.resourceHintsto emit resource hints (preload/prefetch/modulepreload/preconnect), on by default for ESM output, plusmodule.parser.<type>.urlHints,css.fontPreloadandjavascript.dynamicImportCssPreload. (by @alexander-akait in #21408)Add built-in build progress via
infrastructureLogging.progress, plusestimatedTime,phaseTimings, progress barwidthandprogressBar: "auto"onProgressPlugin. (by @alexander-akait in #21352)Concatenate CommonJS modules with statically analyzable exports; opt out via
optimization.concatenateModules: { commonjs: false }. (by @alexander-akait in #21417)Wrap "weird" CommonJS modules into module concatenation instead of bailing out. (by @alexander-akait in #21436)
Add
output.html.inline(true | "script" | "style") and thewebpackInlinemagic comment to inline chunk content into HTML. (by @alexander-akait in #21260)Add
output.html.injectto control where chunk tags are injected. (by @alexander-akait in #21383)Add
output.html.title,output.html.metaandoutput.html.baseoptions for head generation. (by @alexander-akait in #21394)Support per-icon link attributes (
sizes,media,color,type,crossorigin) and arrays inoutput.html.favicon. (by @alexander-akait in #21487)Add
output.html.manifestto generate and link a web app manifest with hashed icons. (by @alexander-akait in #21487)Add
output.html.cspto inject a Content-Security-Policy meta with inline-content hashes and an optional nonce. (by @alexander-akait in #21487)Add the
output.htmlinjectTagscompilation hook to inject tags (script/link/meta/…) withinjectToplacement. (by @alexander-akait in #21487)Add the
output.htmltransformTagscompilation hook to mutate, remove, or move (between<head>and<body>) a page's existing<script>/<link>/<style>/<meta>tags. (by @alexander-akait in #21487)Extend the HTML pipeline with
htmllink sources (bundled as their own emitted page) andrel="preload"/"prefetch"links bundled as chunks. (by @alexander-akait in #21346)Recognize more asset-bearing HTML sources: the
twitter:player:streammeta, legacy SVG references, and Web App Manifesticons/screenshots/shortcutsURLs. (by @alexander-akait in #21355)Add
module.parser.html.asto parse HTML as a document or an element fragment. (by @alexander-akait in #21441)Allow disabling a built-in HTML parser source via
type: falseinsources. (by @alexander-akait in #21441)Export
webpack.html.HtmlModulesPluginwithtransformHtml/htmlEmittedcompilation hooks. (by @alexander-akait in #21487)Resolve
@custom-media(including media-type values) and@custom-selectorin native CSS. (by @alexander-akait in #21442)Scope
view-transition-name/-group/-classnames and::view-transition-*()pseudo references in CSS modules undercustomIdents. (by @alexander-akait in #21486)Add
import.meta.globsupport, with acaseSensitiveoption and consistent hidden/node_modulesmatching. (by @alexander-akait in #21385)Resolve
import.meta.resolve("./asset")to the emitted asset URL via theimportMeta.resolveparser option. (by @alexander-akait in #21415)Add
import.meta.envdefaults:MODE,DEV,PROD,SSRandBASE_URL. (by @alexander-akait in #21440)Add fine-grained
import.metaparser options. (by @alexander-akait in #21327)Deprecate the
importMetaContextparser option in favor ofimportMeta.webpackContext. (by @alexander-akait in #21360)Emit analyzable
new URL(…, import.meta.url), worker/worklet URL andimport()references with literal specifiers for ESM module output. (by @alexander-akait in #21194)Compile async modules to generators for targets without async/await. (by @alexander-akait in #21410)
Evaluate and validate the second argument of dynamic
import(specifier, options). (by @alexander-akait in #21446)Add
module.parser.javascript.workletto bundle WorkletaddModule()entries. (by @alexander-akait in #21384)Add
?raw,?url,?inlineand?no-inlineasset query suffixes underexperiments.futureDefaults. (by @alexander-akait in #21379)Add an
interop("default" | "esModule") hint for object externals to control default-export interop. (by @alexander-akait in #21371)Add an
amd-asyncexternals type that loads AMD externals without an AMD library wrapper. (by @alexander-akait in #21340)Support
cache.compression: "zstd"for the filesystem cache. (by @alexander-akait in #21438)Warn on strict-mode-only syntax and semantic hazards in ES module output, configurable via the
strictModeViolationsparser option. (by @alexander-akait in #21387)Support parsers without location APIs: locations derive from node offsets and AST nodes no longer carry
loc. (by @alexander-akait in #21451)Attach the original DOM event to
ChunkLoadErrorandScriptExternalLoadErroraserror.event. (by @alexander-akait in #21388)Add
output.wasmStreamingFallbackfor wasm fallback on a wrong MIME type. (by @alexander-akait in #21299)Show why a module was marked as not cacheable in stats output. (by @alexander-akait in #21403)
Expose the active
MultiWatchingonMultiCompiler.watching. (by @alexander-akait in #21469)Resolve git merge conflicts when parsing the build-http lockfile. (by @alexander-akait in #21397)
Patch Changes
Fix broken HMR with
output.moduleand non-importchunk loading by emitting a plain-JSON hot-update manifest. (by @alexander-akait in #21460)Fix unused CSS module exports leaking into the JS wrapper. (by @alexander-akait in #21301)
Fix deferred import evaluation: re-throw cached errors, guard forcing a still-evaluating module, keep re-exported deferred namespaces identical, and evaluate initial-chunk deferred context imports lazily. (by @alexander-akait in #21446)
Keep ESM live bindings for a module library's entry exports, including when the runtime is emitted as a separate chunk. (by @alexander-akait in #21349)
Fix SplitChunks merging undersized modules into the wrong result group. (by @alexander-akait in #21356)
Fix named id assignment reusing an already-used numbered suffix, which could produce duplicate module/chunk ids. (by @alexander-akait in #21406)
Fix inlined non-binary asset modules with
encoding: falseemitting "undefined" instead of their content. (by @alexander-akait in #21406)Decode non-base64 data URIs as UTF-8 so multi-byte characters are preserved. (by @alexander-akait in #21366)
Keep required JSON data intact when a prototype method (e.g.
arr.includes()) is called on it. (by @alexander-akait in #21433)Recognize modern RegExp flags (
d,s,u,v) when statically evaluatingnew RegExp(...). (by @alexander-akait in #21366)Merge object-form and dotted DefinePlugin definitions so
import.meta.env/process.envare consistent across direct, whole-object and destructured access. (by @alexander-akait in #21419)Emit an error when an object external has no entry for the used externals type. (by @alexander-akait in #21340)
Fix a persistent cache restore crash when a content section starts exactly on a content-buffer boundary. (by @alexander-akait in #21406)
Restore missing
internalSerializablesentries (webpack/lib/Module and cold filesystem cache). (by @alexander-akait in #21391)Fix watch rebuild crash when context symlink targets lack
timestampHash. (by @alexander-akait in #21381)Fix lazy compilation backend leaking idle module entries and hanging on exit. (by @alexander-akait in #21468)
Stop logging benign ECONNRESET client errors from the lazy compilation server. (by @alexander-akait in #21406)
Accept compilations from another webpack copy in
getCompilationHooksagain. (by @alexander-akait in #21407)Fix
output.htmlinjection edge cases: escaping, head detection, duplicate meta tags, resource-hint/entry-tag retention withinject: false, and stylesheet placement. (by @alexander-akait in #21416)Ignore a
<base>inside an inert<template>when resolving HTML URLs. (by @alexander-akait in #21441)Bust an HTML page's
[contenthash]when its inlined chunk content changes. (by @alexander-akait in #21441)Fix a dangling stylesheet
<link>for a JS-only chunk in an HTML entry. (by @alexander-akait in #21441)Fix a malformed HTML magic comment leaking a pending
webpackInlinedirective onto the next element. (by @alexander-akait in #21406)Fix off-by-one dropping the last character of an unterminated
url(...)at end-of-input. (by @alexander-akait in #21406)Consume the trailing whitespace of a CSS hex escape when unescaping identifiers. (by @alexander-akait in #21366)
Fix
[fullhash]inoutput.webassemblyModuleFilenameby dropping a stray brace and requesting thegetFullHashruntime module. (by @alexander-akait in #21406)Fix duplicated errors/warnings in stats output when detail-less entries exceed
errorsSpace/warningsSpace. (by @alexander-akait in #21406)Improve module parse errors with a babel-style code frame and the module type. (by @alexander-akait in #21485)
Fix
formatSizerendering sizes of 1 TiB or larger as "undefined". (by @alexander-akait in #21366)Skip the anonymous default export
.namefix-up whennameis non-configurable, instead of throwing on pre-ES2015 engines. (by @alexander-akait in #21370)Escape
?and#in context module regexp identifiers so source map names are not truncated. (by @alexander-akait in #21422)Resolve directory requests to their index module in scoped
DllReferencePlugin. (by @alexander-akait in #21437)Skip the
hasSymbolcheck in the async module runtime whenenvironment.symbolis set. (by @alexander-akait in #21423)Use a shared
__webpack_require__.cjshelper for wrapped CommonJS modules. (by @alexander-akait in #21464)Derive ASI positions from source text instead of acorn's
onInsertedSemicolon, so custom parsers need not collect semicolons. (by @alexander-akait in #21453)Avoid a second full parse for
autosource type by downgrading module to script in place on a top-level return. (by @alexander-akait in #21455)Fix exponential-time side-effects analysis on cyclic module graphs by memoizing cycle-free results via Tarjan lowlink. (by @alexander-akait in #21373)
Speed up JavaScript parsing and AST walking and reduce parser memory usage. (by @alexander-akait in #21373)
Speed up CSS and HTML parsing and code generation and reduce parser memory usage. (by @alexander-akait in #21332)
Speed up snapshot creation and reduce its memory usage. (by @alexander-akait in #21401)
Reduce allocations in JS codegen, concatenation, queues and parser setup. (by @alexander-akait in #21341)
Speed up stats generation on large builds by reusing the item context across array items. (by @alexander-akait in #21425)
Memoize loader resolution per compilation to avoid re-resolving the same loader for every matching module. (by @alexander-akait in #21435)
Reuse and harden webpack's shared resource parser in the loader runner. (by @alexander-akait in #21392)
Update webpack-sources to 3.5.1 and enhanced-resolve to 5.24.2 to cut peak memory. (by @alexander-akait in #21344)
Inline the loader-runner package into core. (by @alexander-akait in #21249)
Fix context hash crash on unsupported directory entries like FIFOs and sockets. (by @hai-x in #21484)
Verify internalSerializables in lint:special and regenerate it in fix:special. (by @alexander-akait in #21476)
v5.108.4Compare Source
Patch Changes
Speed up non-CSS-Modules parsing by not building unused selector AST nodes. (by @alexander-akait in #21324)
Speed up non-CSS-Modules CSS parsing by dropping value tokens nothing reads. (by @alexander-akait in #21324)
Resolve HTML asset URLs against the document
<base href>. (by @alexander-akait in #21329)Add HTML integration tests: generateError output, ignored src, null-char parse. (by @aryanraj45 in #21328)
Reduce CPU and memory overhead of HTML and CSS parsing and code generation. (by @alexander-akait in #21332)
Reduce HTML parser memory and CPU by skipping unused AST nodes. (by @alexander-akait in #21323)
Reduce HTML parser memory by storing the AST in struct-of-arrays form. (by @alexander-akait in #21331)
Key the provided-exports cache on a lazy barrel's still-lazy re-export targets. (by @hai-x in #21326)
Default
output.globalObjecttoglobalThisfor universal targets. (by @alexander-akait in #21314)Pass through
new URL(...)directory references instead of resolving them. (by @alexander-akait in #21312)v5.108.3Compare Source
Patch Changes
Speed up CSS parsing and reduce CSS AST node memory. (by @alexander-akait in #21285)
Fix HMR codegen crash for harmony accept with unresolved imports. (by @xiaoxiaojx in #21302)
Match harmony accept dependencies by module reference so HMR codegen handles imports without a module or chunk id. (by @alexander-akait in #21303)
v5.108.2Compare Source
Patch Changes
Fix lazy barrel deferral of ungrouped side-effect imports. (by @hai-x in #21291)
Respect the
node:prefix for node.js core modules used as externals. (by @alexander-akait in #21286)v5.108.1Compare Source
Patch Changes
Fix invalid property access for escaped namespace imports with multi-character mangled export names. (by @xiaoxiaojx in #21280)
Add frames to ProfilingPlugin TracingStartedInBrowser event so the trace loads in Chrome DevTools. (by @alexander-akait in #21269)
v5.108.0Compare Source
Minor Changes
Treat top-level await and
import.metaas ES module markers, matching Node.js syntax detection so no explicit module type is needed. (by @alexander-akait in #21218)Add a
buntarget that emits ESM and externalizesbun:*and node.js built-in modules. (by @alexander-akait in #21248)Support CommonJS reexports via
Object.definePropertyvalue and getter descriptors. (by @alexander-akait in #21129)Support JSON Schema
constwhen generating CLI flags from a schema. (by @alexander-akait in #21087)Support JSON Schema
if/then/elsewhen generating CLI flags from a schema. (by @alexander-akait in #21087)Skip import specifiers,
require()andimport()calls in dead conditional branches gated by inlined imported constants (isDEV ? A : B), evaluated viagetCondition. (by @hai-x in #21136)CSS
localIdentName[hash]now resolves to the local ident hash (matching css-loader); use[modulehash]for the module hash. (by @alexander-akait in #21259)Add CSS parser
asoption and resolveurl()inside HTMLstyleattributes. (by @alexander-akait in #21157)Add dedicated module classes for all built-in module types. (by @alexander-akait in #21164)
Support
.html/.cssfor the default./srcentry under the html/css experiments. (by @alexander-akait in #21039)Add
defineConfighelper for typed configuration files. (by @alexander-akait in #21169)Add a
denotarget (with versions, e.g.deno,deno2,deno1.40) that emits ESM, resolves node.js built-ins via the requirednode:specifier, and keeps Deno's own import protocols (npm:,jsr:,node:,http(s)://) external. (by @alexander-akait in #21247)Use
module-importfor electron externals when the target supports ESM. (by @alexander-akait in #21184)Add
output.environment.logicalAssignmentto emit||=in runtime code when the target supports logical assignment operators. (by @bjohansebas in #21219)Resolve and rewrite asset URLs inside
<iframe srcdoc>in HTML modules. (by @bjohansebas in #21226)Add HMR support for HTML modules with body/title DOM patching on update. (by @alexander-akait in #21011)
Add
css-urlhtml source type extractingurl()references from CSS-valued attributes. (by @alexander-akait in #21250)Add
module.parser.html.sourcesoption to disable or customize URL-attribute extraction for HTML modules, withscript/script-module/stylesheet/stylesheet-inlinetypes for custom attributes (by @alexander-akait in #21022)Add
module.parser.html.templateoption to transform HTML module source before parsing. (by @alexander-akait in #21055)Extract more source URLs in HTML modules (SVG, legacy and obsolete attributes). (by @alexander-akait in #21241)
Inline
export default <const>when the default-exported value is a primitive constant. (by @hai-x in #21189)Support
optimization.inlineExportsfor better tree-shaking. (by @hai-x in #20973)Re-encode inline hash digests (
[contenthash]/[chunkhash]/[fullhash]/[modulehash]) from the full content hash, so they carry full entropy and work underoptimization.realContentHashand in dynamically-loaded chunk filenames; also preserve leading zero bytes in base-N digests. (by @alexander-akait in #21267)Allow tree-shaking unused calls to
/*#__NO_SIDE_EFFECTS__*/-annotated (pure) exports across module boundaries. (by @hai-x in #20907)Defer building unused re-export targets of side-effect-free barrel modules. (by @hai-x in #21165)
Keep export mangling enabled for modules whose namespace object is used as a whole value, by materializing a decoupled namespace object that keeps the original export names. (by @alexander-akait in #21234)
Add
output.environment.letoption (paired with target'sletcapability) and emitlet/constinstead ofvarin generated runtime code wherever it is safe. Bindings that may be wrapped in runtime-conditionifblocks (harmony imports, ConcatenatedModule external imports) continue to usevarto preserve function scoping. (by @alexander-akait in #21010)Add
output.htmlto emit an HTML file per entrypoint, injecting its JS/CSS chunks (includingdependOnshared chunks). (by @alexander-akait in #21215)Add
module.parser.javascript.pureFunctionsto mark top-level names as side-effect-free for tree shaking. (by @hai-x in #21063)Add
universaltocompiler.platform, true for universal targets ("universal"or["web", "node"]). (by @bjohansebas in #21252)Add
output.strictModuleResolutionto gate the runtimeMODULE_NOT_FOUNDguard. (by @hai-x in #21067)Support an inline digest in hash path placeholders, e.g.
[contenthash:base64:8]. (by @alexander-akait in #21259)Support
[uniqueName]and its[uniquename]alias in template paths. (by @alexander-akait in #21155)Support CSS in Node for universal targets, collecting styles for SSR. (by @alexander-akait in #21208)
Improve commonjs, node-commonjs and global externals for universal targets. (by @alexander-akait in #21187)
Add a
universaltarget preset (browser + web worker + Node.js + Electron + NW.js) that always outputs ECMAScript modules. (by @alexander-akait in #21214)Support
new Worker(new URL(...))in universal (node + web) targets by resolving the Worker constructor fromworker_threadswhen no globalWorkerexists. (by @alexander-akait in #21195)Add
output.workerChunkFilenameandentry.workerfor worker chunk filenames. (by @alexander-akait in #21128)Patch Changes
Skip re-parsing the inlined entry module when no renaming is needed. (by @alexander-akait in #21167)
Extend the avoidEntryIife no-parse fast path to multi-entry chunks. (by @alexander-akait in #21173)
Reuse the binary deserialize dispatch table to speed up cache restore. (by @alexander-akait in #21175)
Type
buildInfoandbuildMetaper module type with shared common properties. (by @alexander-akait in #21172)Avoid copying module runtime requirements when ownership is not transferred. (by @alexander-akait in #21140)
Keep all CommonJS exports when an exported function accesses them via
this. (by @alexander-akait in #21179)Align CLI color-support detection across Node, Deno and Bun. (by @alexander-akait in #21257)
Include the schema origin path in conflicting-schema CLI argument errors. (by @alexander-akait in #21087)
Reject
__proto__,constructorandprototypepath segments incli.processArgumentsto prevent prototype pollution. (by @alexander-akait in #21057)Speed up
Compilation.deleteAssetandCompilation.renameAssetvia a lazy reverse index from asset file name to containing chunks. (by @alexander-akait in #21035)Fix merging of inner modules' top-level declarations in concatenated modules. (by @alexander-akait in #21170)
Reduce allocations in export hashing and concatenation name lookups. (by @alexander-akait in #21167)
Avoid toLowerCase allocations in CSS keyword comparisons. (by @alexander-akait in #21109)
Speed up CSS identifier escaping with a char-class lookup table. (by @alexander-akait in #21109)
Resolve
[fullhash]inurl()public paths for inlined CSS export types (style/text/css-style-sheet) at runtime. (by @alexander-akait in #21054)Avoid quadratic line scan when building CSS module exports source maps. (by @alexander-akait in #21109)
Compute CSS comment source locations lazily. (by @alexander-akait in #21109)
Support inline hash digest and length in CSS module
localIdentNameplaceholders. (by @alexander-akait in #21259)Resolve full CSS escapes (including hex) in CSS-Modules names, so e.g.
\75 rl()matchesurl(). (by @alexander-akait in #21196)Reduce CSS parser CPU (hoisted per-call regexes, byte-compared
@containerpure-mode keywords) and stop retaining parsed comments on the reused parser instance between modules. (by @alexander-akait in #21202)Reduce CSS build time and memory usage. Per-export CSS dependencies are consolidated into one dependency per module, and hot-path allocations and lookups in CSS code generation and the module-graph cache are trimmed. (by @alexander-akait in #21114)
Cache CSS public-path placeholder offsets per module source to avoid re-materializing and re-scanning the source on every render. (by @alexander-akait in #21054)
Fix CSS tokenizer infinite loops and dropped tokens on malformed input. (by @alexander-akait in #21102)
Speed up CSS identifier unescaping with bulk run flushing. (by @alexander-akait in #21109)
Skip already-visited symlink targets when resolving context hashes so cyclic symlink graphs no longer overflow the queue. (by @alexander-akait in #21088)
Resolve
DefinePluginaccess to an undefined object member asundefined. (by @alexander-akait in #21040)Avoid materializing dependency source locations when sorting, keeping them lazy to reduce build time and memory. (by @alexander-akait in #21228)
Speed up serialization deserialize by replacing a Buffer.isBuffer call with a typeof check. (by @hai-x in #21203)
Emit assets with absolute target paths as-is to avoid invalid Windows paths. (by @alexander-akait in #21223)
Add
output.environment.spread,output.environment.hasOwn, andoutput.environment.symbol, and use method shorthand, spread,Object.hasOwn, and an unguardedSymbolin generated runtime code where the environment supports it. (by @alexander-akait in #21188)Drop the unused loadScript runtime from ESM hot-update bundles. (by @alexander-akait in #21208)
Extend value binding optimization to export default expressions. (by @xiaoxiaojx in #21117)
Reduce ExportInfo memory and cache size for inline-exports metadata. (by @alexander-akait in #21171)
Resolve nested exports info paths iteratively to cut per-level array allocations. (by @alexander-akait in #21137)
Fix stale incremental cache for css, html and asset/source/inline modules. (by @alexander-akait in #21108)
CommonJS tree-shaking no longer drops exports accessed before a deferred require binding. (by @xiaoxiaojx in #21123)
Make CSS-referenced asset available in lazy JS chunk during incremental rebuilds. (by @alexander-akait in #21100)
Correct string/template import specifier parsing for filesystem cache build dependencies and fix module-sharing hostname validation. (by @alexander-akait in #21232)
perf: guard isDeferred() behind experiments.deferImport in ConcatenatedModule (by @shashank-u03 in #21096)
Speed up deterministicGrouping and cached comparators on large builds. (by @alexander-akait in #21197)
Reduce allocations on harmony/commonjs dependency hot paths. (by @alexander-akait in #21180)
Force-load a module's new owning chunk during HMR when its only loaded chunk is removed from a runtime, so it keeps receiving updates. (by @alexander-akait in #21131)
Fix HTML parser adoption agency to handle a
nobrshielded by a marker. (by @alexander-akait in #21274)Expand HTML parser tag/attribute coverage and decode character references. (by @alexander-akait in #21159)
Speed up and reduce allocations in the experimental HTML parser's tokenizer, tree builder, and entity decoder. (by @alexander-akait in #21152)
Speed up the experimental HTML parser and reduce its memory usage. (by @alexander-akait in #21130)
Avoid redundant HTML module work: reuse the dependency-template render across the JS and HTML code-generation passes, and memoize sentinel resolution/content hashing per source. (by @alexander-akait in #21054)
Release inner-graph state after use and speed up inlined-export checks. (by @alexander-akait in #21167)
Reduce JavascriptParser allocations on the walk hot path to speed up parsing and lower memory usage. (by @alexander-akait in #21139)
Reduce CPU and memory overhead of the lazy barrel optimization. (by @alexander-akait in #21213)
Keep the error message in module build errors on engines whose
Error.stackomits it. (by @alexander-akait in #21239)Speed up module concatenation by caching repeated per-module computations. (by @alexander-akait in #21115)
Move the
hotflag fromModuletoNormalModule, where it's actually read and written. (by @alexander-akait in #21028)Move the
weakflag fromDependencytoModuleDependency, where it's actually set. (by @alexander-akait in #21111)Avoid the entry IIFE for multiple inlined entry modules by renaming collisions. (by @alexander-akait in #21151)
Reject
new import.defer(...)/new import.source(...)with member access as a SyntaxError. (by @alexander-akait in #21211)Avoid
ProvidePlugininjection for local CommonJS require bindings that use the same variable name. (by @fireairforce in #21041)Resolve the global
new Worker(new URL(...))toworker_threadson thenodetarget. (by @alexander-akait in #21217)Use optional chaining in generated runtime code where the environment supports it. (by @alexander-akait in #21186)
Allow output.path to be the filesystem root by treating EISDIR like EEXIST in mkdirp. (by @alexander-akait in #21223)
Reduce memory by not retaining the source location object on every dependency. (by @alexander-akait in #21183)
Keep the full exports object when a
require()binding is re-exported. (by @alexander-akait in #21144)Replace glob-to-regexp dependency with watchpack's globToRegExp utility. (by @hai-x in #21176)
Shrink the persistent cache: add a NULL_AND_I16 binary tier and inline tiny strings instead of larger far back-references. (by @hai-x in #21210)
Type serializer read/write contexts with positional tuples and fix a ProvideSharedDependency version/request swap. (by @alexander-akait in #21201)
Speed up buildChunkGraph by deriving block modules from the first runtime. (by @alexander-akait in #21166)
Cache re-export target resolution in SideEffectsFlagPlugin for faster builds. (by @alexander-akait in #21085)
Skip pure single-star passthrough modules for
export *re-exports. (by @alexander-akait in #21085)Skip dependency error/warning reporting for unchanged modules on rebuilds. (by @alexander-akait in #21154)
Use value descriptors instead of getters for const export bindings. (by @xiaoxiaojx in #21021)
Apply CSS hot updates on the Node side of a universal target. (by @alexander-akait in #21217)
Guard CSS
styleexport-type injection so it no-ops when there is nodocument. (by @alexander-akait in #21193)Avoid building warning stats objects when counting warnings without a filter. (by @alexander-akait in #21198)
Recognize forward-slash Windows absolute paths (e.g. C:/dir) consistently. (by @alexander-akait in #21223)
v5.107.2Compare Source
Patch Changes
Reduce per-file overhead in
ContextModuleFactory.resolveDependenciesby batchingalternativeRequestshook calls. Previously the hook was invoked once per file in the context (with a single-item array), paying per-call overhead (closure allocation,resolverFactory.get, intermediate arrays inRequireContextPlugin) for every file. The hook is now invoked once per directory with all matched files in one batch —RequireContextPlugin's tap already iterates the items array, so the output is unchanged. Steady-state rebuild on a 4000-filerequire.contextdrops a further ~15 ms (after the watch-mode purge fix in the same release). (by @alexander-akait in #21020)Include each external info's
runtimeConditioninConcatenatedModule#updateHashso changes to a concatenated external's runtime condition invalidate persistent caches instead of slipping through with the module id alone. (by @alexander-akait in #21023)Fix HTML
[contenthash]for referenced asset and inline-style URL changes. (by @alexander-akait in #21018)Resolve chunk-hash placeholders in chunk URLs embedded into extracted HTML. (by @alexander-akait in #21018)
Remove unnecessary
__webpack_require__runtime helpers in ESM library output with multi-module chunks. (by @xiaoxiaojx in #21032)Rewrite
NormalModule#getSideEffectsConnectionStatewalk as an allocation-light iterative loop instead of a generator trampoline, restoring rebuild performance lost in #20993 while keeping deep import chains stack-safe. (by @alexander-akait in #21014)Fix runtime
ReferenceErroron the first activation of a lazy-compiled module whenoutput.library.typeproduces a closure-wrapped bundle (umd,umd2,amd,amd-require,system). (by @alexander-akait in #21013)External modules of these types reference closure-bound identifiers like
__WEBPACK_EXTERNAL_MODULE_react__, supplied by the library wrapper that is generated once per chunk. WhenlazyCompilationactivates an entry or import for the first time, any external dependency the lazily-built module pulls in arrives in a hot-update chunk that lives outside the original wrapper closure, so its factory body cannot resolve the closure identifier and only a manual page refresh recovers.The inactive
LazyCompilationProxyModulenow declares statically-enumerable externals (string and object forms ofexternals) as its own dependencies, so the initial entry chunk's library wrapper already exposes their closure identifiers. When activation later pulls in those externals through the lazily-compiled module, they resolve to the already-installed factories instead of throwing. Function and RegExp externals are not pre-populated because their effective request set isn't knowable up front.Fill in missing
entryOptionswhen an async block joins an existing entrypoint. (by @alexander-akait in #21026)Release per-child
codeGenerationResultsinMultiCompilerand atCompiler.closeto reduce memory retention. (by @alexander-akait in #21015)Reduce peak memory of
SourceMapDevToolPluginon large builds (closes #20961). (by @alexander-akait in #20963)Fix slow
require.context()/ dynamicimport()rebuilds in watch mode (#13636). When a file inside a watched context directory changed,NodeWatchFileSystemwould callinputFileSystem.purge(contextDir). The enhanced-resolvepurgeimplementation matches cache keys withkey.startsWith(contextDir), so the stat cache of every file under the directory was discarded on every rebuild —ContextModuleFactory.resolveDependenciesthen re-stat-ed the whole tree on each rebuild. Single-file rebuilds on a 4000-file context now reuse the warm stat cache, dropping median rebuild from ~1260 ms to ~650 ms in a local reproduction (≈49%). For directory items that are explicitly watched contexts,purgeis now called with{ exact: true }(added inenhanced-resolve@5.22.0) so only the directory's own entry is invalidated; file-level changes in the same aggregated event continue to purge file stats and the parentreaddiras before. (by @alexander-akait in #21020)v5.107.1Compare Source
Patch Changes
Align the experimental HTML tokenizer with the WHATWG spec: fix offset-range bugs in the script-data, content-mode end-tag, attribute-value, and EOF states; surface tokenizer parse errors to consumers via a new
parseErrorcallback ("warning"when the tokenizer recovers and the emitted token is still well-formed,"error"when the offset range is incomplete — e.g.eof-in-tag); and add the full WHATWG named character references table sodecodeHtmlEntitieshandles all named entities (including legacy bare forms like&and multi-code-point entities like≂̸) with proper longest-prefix backtracking. (by @alexander-akait in #21000)Tree-shake CommonJS modules imported through a
const NAME = require(LITERAL)binding when only static members ofNAMEare read. Previously webpack treated every export of such modules as referenced (because the barerequire()dependency reportsEXPORTS_OBJECT_REFERENCED), so unusedexports.x = ...assignments remained in the bundle even withusedExportsenabled. The parser now forwardsNAME.x/NAME.x()/NAME["x"]accesses to the underlyingCommonJsRequireDependencyas referenced exports, falling back to the full exports object the momentNAMEis read in any other context (passed by value, destructured later, accessed with a dynamic key, …). This brings the binding form to parity with the existing destructuring form (const { x } = require(...)). (by @alexander-akait in #21003)Fix
RangeError: Maximum call stack size exceededthrown fromHarmonyImportSideEffectDependency.getModuleEvaluationSideEffectsStateon long linear chains of side-effect-free imports.NormalModule.getSideEffectsConnectionStatepreviously descended throughHarmonyImportSideEffectDependency.getModuleEvaluationSideEffectsStaterecursively, adding two stack frames per module, which overflowed V8's stack at a few thousand modules deep. The traversal is now iterative. (by @alexander-akait in #20993)Fix
NormalModuleFactoryparser/generator types: (by @alexander-akait in #20999)module.generator.htmlnow usesHtmlGeneratorOptionsinstead ofEmptyGeneratorOptions(theextractoption was hidden from thecreateGenerator/generatorhook types).webassembly/async,webassembly/sync) generator hooks now useEmptyGeneratorOptionsinstead ofEmptyParserOptions.NormalModuleFactory#getParser/createParser/getGenerator/createGeneratorare now generic over the module-type string, returning the specific parser/generator class for known types (e.g.JavascriptParserfor"javascript/auto",CssGeneratorfor"css", etc.) instead of always returning the baseParser/Generator.NormalModuleCreateDatais now generic over the module type soparser,parserOptions,generator, andgeneratorOptionsare narrowed to the specific class / options for the giventype.Link import bindings used inside
define(...)callbacks in ES modules. Previously,HarmonyDetectionParserPluginskipped walking the arguments ofdefinecalls in harmony modules, so references to imported bindings inside an inline AMDdefinefactory (e.g.define(function () { console.log(foo); })) were not rewritten to their imported references and could causeReferenceErrorat runtime. Inner graph usage analysis is also fixed for the related patternconst fn = function () { foo; }; define(fn);. (by @alexander-akait in #20990)HTML-entry pipeline (
experiments.html+experiments.css): emit<link rel="stylesheet">tags for CSS chunks reachable from a<script src>entry. Previously when the bundled JS imported CSS, the resulting.cssfile was emitted to disk but never referenced from the extracted HTML (no<link>tag), and whensplitChunksextracted CSS into sibling chunks the HTML cloned the originating<script>for each one — producing<script src="style.js">pointing at non-existent JS filenames instead of<link rel="stylesheet" href="style.css">. CSS chunks are now sorted by the entrypoint's module post-order index so the<link>tags also appear in source import order, fixing the cascade ordering issue documented inhtml-webpack-plugin#1838andwebpack/mini-css-extract-plugin#959for HTML-entry builds.nonce/crossorigin/referrerpolicyare copied from the originating tag onto the emitted<link>. (by @alexander-akait in #21002)Allow
devtoolandSourceMapDevToolPlugin(or multipleSourceMapDevToolPlugininstances) to coexist on the same asset. Previously the second instance would silently skip any asset whoseinfo.related.sourceMaphad already been set by an earlier instance, and even when it ran the asset had been rewrapped as aRawSourceso no source map could be recovered — producing an empty.mapfile. The plugin now keeps a per-compilation stash of pristine source maps, namespaces its persistent cache entries by the options that affect output, and appends additionalrelated.sourceMapentries instead of overwriting them. The classic workaround of pairingdevtool: 'hidden-source-map'with anew webpack.SourceMapDevToolPlugin({ filename: '[file].secondary.map', noSources: true })now produces both maps in a single build. (by @alexander-akait in #21001)Narrow
TemplatePathFncallback types by context.pathData.chunkis now non-optional for chunk filename callbacks (output.filename,chunkFilename,cssFilename,cssChunkFilename,htmlFilename,htmlChunkFilename,optimization.splitChunks.cacheGroups[*].filename), andpathData.moduleis non-optional for module filename callbacks (output.assetModuleFilename, per-modulegenerator.filename/generator.outputPath,module.parser.css.localIdentName). (by @alexander-akait in #20987)Tighten the
CreateDatatypedef inNormalModuleFactory.CreateDatanow represents the fully-populated value passed to thecreateModule,module, andcreateModuleClasshooks (NormalModuleCreateData & { settings: ModuleSettings }), whileResolveData.createDatais typed asPartial<CreateData>to reflect the empty initial state. Plugins tapping those hooks no longer need to cast individual fields away from optional. (by @alexander-akait in #20992)Stop
webpackPrefetch/webpackPreloadmagic comments from leaking acrossimport()call sites that share awebpackChunkName. When two imports targeted the same named chunk and only one of them setwebpackPrefetch: true, the prefetch directive was applied from every parent chunk that referenced the named chunk. Prefetch and preload orders are now resolved perimport()call site instead of from the shared chunk group's accumulated options. (by @alexander-akait in #20994)Fix
[fullhash:N]and[hash:N](with length suffix) inoutput.publicPathnot being interpolated at runtime. The detection regex inRuntimePluginonly matched[fullhash]/[hash]without a length suffix, so thePublicPathRuntimeModulewas not flagged as a full-hash module and__webpack_require__.pwas emitted with the placeholderXXXXleft in place (e.g.out/XXXX/) instead of the real hash truncated to the requested length. (by @alexander-akait in #21004)Re-export
ModuleNotFoundErrorfromwebpack/lib/ModuleNotFoundErrorfor backward compatibility with old plugins that import it from that path. This re-export will be removed in webpack 6. (by @alexander-akait in #20988)v5.107.0Compare Source
Minor Changes
Add
module.generator.javascript.anonymousDefaultExportNameoption to control whether webpack sets.nameto"default"for anonymous default export functions and classes per ES spec. Defaults totruefor applications andfalsefor libraries (whenoutput.libraryis set) to avoid unnecessary bundle size overhead. Also extract anonymous default export.namefix-up into a shared runtime helper (__webpack_require__.dn), replacing repeated inlineObject.defineProperty/Object.getOwnPropertyDescriptorcalls with a single short call per module to reduce output size. (by @xiaoxiaojx in #20894)Support module concatenation (scope hoisting) for CSS modules with
text,css-style-sheet,style, andlinkexport types (by @xiaoxiaojx in #20851)The
generator.exportsConventionfunction form for CSS modules now acceptsstring[]in addition tostring. (by @alexander-akait in #20914)Add
linkInserthook toCssLoadingRuntimeModule.getCompilationHooks(compilation)so plugin developers can control where stylesheet<link>elements are inserted into the document. (by @alexander-akait in #20947)Add
CssModulesPlugin.getCompilationHooks(compilation).orderModuleshook. (by @alexander-akait in #20978)Add a
pureparser option forcss/moduleandcss/autotypes matchingpostcss-modules-local-by-default's pure mode: every selector must contain at least one local class or id, otherwise webpack emits a build error. (by @alexander-akait in #20946)Support CSS Modules
@valueidentifiers as@importURLs and insideurl()functions, e.g.@value path: "./other.css"; @import path;and@value bg: "./image.png"; .a { background: url(bg); }(by @alexander-akait in #20925)Add experimental TypeScript support via
experiments.typescript: true(auto-enabled byexperiments.futureDefaults). Uses Node.js's built-inmodule.stripTypeScriptTypes(Node.js >= 22.6 with the stablemode: "strip"API, including Node.js 26) to transform.ts,.cts,.mts,data:text/typescript, anddata:application/typescriptmodules — no type checking, only erasable TypeScript (types, generics,import type, casts)..tsx/JSX and non-erasable syntax (enum,namespace, parameter-property constructors, decorator metadata) are NOT supported; use a TSX-capable loader (e.g.ts-loader,swc-loader) for those. (by @alexander-akait in #20964)Added an
experiments.htmlflag that reserves thehtmlmodule type for the first-class HTML entry-point support. (by @aryanraj45 in #20902)Preserve
defer/sourceimport phase keywords on external dependencies in ESM output, the same way import attributes are preserved. (by @alexander-akait in #20934)Support the
#__NO_SIDE_EFFECTS__annotation to mark functions as pure for better tree-shaking. (by @hai-x in #20775)Add
module.generator.html.extractfor HTML modules and the matchingoutput.htmlFilename/output.htmlChunkFilenamefilename templates (defaults derived fromoutput.filename/output.chunkFilenamewith.jsswapped for.html, mirroring the CSS pipeline). When extraction is on, the parsed and URL-rewritten HTML is emitted as a standalone.htmloutput file alongside the module's JavaScript export. (by @alexander-akait in #20979)Add
"module-sync"to defaultconditionNamesfor resolver defaults to align with Node.js, which exposes themodule-synccommunity condition for synchronously-loadable ESM. (by @alexander-akait in #20933)Patch Changes
Fix CSS modules
composessocomposes: foo from "./self.module.css"from insideself.module.cssno longer creates a duplicate module instance. Fix CSS modulescomposesparsing solocal()andglobal()function wrappers are tracked per class name. Fix CSS modulescomposes: ... from "<file>"so the composed files load in an order consistent with every rule's local composes order, instead of source first-appearance order. (by @alexander-akait in #20929)Avoid emitting the
__webpack_require__runtime in CSS bundles when all imported CSS modules were concatenated into the same scope. (by @alexander-akait in #20936)Recompute the CSS chunk's
[contenthash]and the rendered CSS bytes when an asset referenced byurl()/src()/string in CSS changes its hashed filename. (by @alexander-akait in #20938)Embed an inline
sourceMappingURLdata URI inside the CSS when theparser.exportTypeoption aretext,style, orcss-style-sheet. Also merge@imported CSS at build time fortextandcss-style-sheetexportTypes so the bundle ships a single accurate inline source map covering every contributing file. Map each generated CSS-module class export line in the JS bundle back to its selector position in the original CSS file (e.g.btn: "..."→.btn { ... }). (by @alexander-akait in #20886)Fix CSS modules deduplication so a
.module.<ext>file imported both directly (JS) and via icss (composes from/:import) becomes a single module instance. (by @alexander-akait in #20929)Preserve
@charsetat-rule when CSS modules useexportType: "text". (by @alexander-akait in #20912)Resolve
[hash]/[fullhash]placeholders inoutput.publicPathwhen generatingurl()references forexperiments.css. (by @alexander-akait in #20879)Fix HMR for concatenated CSS modules with
styleexportType by using stable per-module identifiers for injected style elements and tracking inner module IDs of concatenated modules in HMR records (by @xiaoxiaojx in #20911)Fix CSS Modules
@valueresolution when the same local name is imported from multiple modules. (by @alexander-akait in #20940)Fix
typeof ns.default/ns.default instanceof Xon a staticimport defer * as ns from "./mod"fordefault-onlyanddefault-with-namedexternal modules underoptimization.concatenateModules. The concatenated-module rewrite was collapsingns.defaultto the deferred-namespace proxy itself instead of routing through the optimized.agetter (which lazily evaluates the module and returns its default value), sotypeof ns.defaultobserved"object"(the proxy) rather than the type of the default. ThedynamicexportsType already used.acorrectly; default-only and default-with-named now match. (by @alexander-akait in #20910)Make
import defer * as nsmore spec-compliant:ns.x = valueno longer triggers module evaluation (per the TC39 import-defer[[Set]]algorithm), and the deferred namespace is now a distinct object from the eager namespace, with the same Deferred Module Namespace Exotic Object shared across defer-import call sites for the same module. (by @alexander-akait in #20913)Fixed spec deviations in the deferred namespace object returned by
__webpack_require__.z(import defer * as ns/import.defer(...)). (by @alexander-akait in #20910)Drop the
__webpack_require__,__webpack_require__.d, and__webpack_require__.oruntime helpers fromlibrary: { type: "module" }bundles when the on-demand exports source they were emitted for ends up dropped (e.g. a single concatenated entry without an IIFE). (by @alexander-akait in #20901)Resolve the static specifier of a dynamic
import()whose argument is a side-effect-freeSequenceExpression, e.g.import((1, 0, "./mod.js"))is now treated the same asimport("./mod.js")instead of being rejected as unresolvable. (by @alexander-akait in #20917)Stable shared module ids and runtime-chunk emission order. (by @imccausl in #20860)
Fix snapshot validity check for context dependencies in watch mode by treating watchpack's existence-only entries (
{}) as cache misses. (by @alexander-akait in #20916)Support no-expression template literals in computed member access (e.g.
import.meta[`url`]). (by @alexander-akait in #20889)Improve tree-shaking in
isPure: handle more expression types (ArrayExpression,ObjectExpression,NewExpression,ChainExpression,UnaryExpression(safe operators),MetaProperty,TaggedTemplateExpression,BinaryExpression(strict equality)), prevent/*#__PURE__*/comments from leaking acrossObjectExpressionproperties, and detect PURE comments insideTemplateLiteralinterpolations. (by @alexander-akait in #20723)Reject
new import.defer(...)andnew import.source(...)as a parse-timeSyntaxError, matching the spec —ImportCallis aCallExpressionand is not a valid operand ofnew. Parenthesized forms (new (import.defer(...))) remain valid and continue to throwTypeErrorat runtime as before. (by @alexander-akait in #20917)Escape
#characters that appear inside a path-shaped request's directory portion before passing the request to the resolver, so projects located in directories like/home/user/proj#1(and tools like webpack-dev-server that build entry requests with query strings) resolve correctly. The escape only kicks in when the request contains both a#in the path portion and a?query string — paths without a query keep their existing semantics. (by @alexander-akait in #20980)Silence unhandled rejection from the prefetch trigger when chunk loading fails. The
ensureChunkHandlers.prefetchruntime createdPromise.all(promises).then(...)whose result is discarded by__webpack_require__.e. If chunk loading rejected (e.g.chunkLoadTimeout), that dangling chain produced an unhandled rejection. Prefetch is best-effort, so a no-op rejection handler is now attached. (by @alexander-akait in #20898)Align
require()of an ES module with Node.js'srequire(esm)"module.exports"named-export convention. When CommonJSrequire()resolves to an ES module that exports a binding with the literal string name"module.exports"(e.g.export { value as "module.exports" }),require()now returns the value of that export instead of the module's namespace object — matching Node.js v22.12+/v23+ behavior and easing migration of dual ESM/CJS libraries that rely onmodule.exports = …. The unwrap applies to plainrequire(),require().foo, calls (require()(…)), destructuring, and to CJS wrappers likemodule.exports = require(esm)/exports.x = require(esm). (by @alexander-akait in #20981)Remove outdated
@types/eslint-scopepackage from dependencies. (by @alexander-akait in #20869)Fix
export *resolution when a star-reexported module re-exports a name back to the importer cyclically. Previously, in a graph whereadoesexport * from "./b"; export * from "./c";andbdoesexport { foo } from "./a";whilecprovides the actualfoobinding, webpack hoistedfoofrombintoa's namespace without per-name cycle detection — emitting a getter chain (a.foo→b.foo→a.foo) that threw "Maximum call stack size exceeded" at runtime. The TC39ResolveExportalgorithm requires the cyclic branch to return null and the star loop to fall through to the non-cyclic source. (by @alexander-akait in #20959)Preserve
usingdeclaration initializers when the inner graph optimization is enabled. (by @hai-x in #20906)Fixed typescript types. (by @alexander-akait in #20880)
Bump
webpack-sourcesto^3.4.1and feed asset bytes into hashes via the newSource.prototype.buffers()API. For largeConcatSource/ReplaceSourceoutputs this avoids the intermediateBuffer.concatthatsource.buffer()performs, removing a peak-memory spike equal to the source's total size on each hashed asset (AssetGenerator.getFullContentHash,CssIcssExportDependencycontent hashing, andRealContentHashPlugin). A small benchmark on a 64 MiBConcatSourceshows ~64 MiB lower peak external memory and ~45% faster hashing. (by @alexander-akait in #20897)v5.106.2Compare Source
Patch Changes
CSS @import now inherits the parent module's exportType, so a file configured as "text" correctly creates a style tag when @imported by a "style" parent. (by @xiaoxiaojx in #20838)
Make asset modules available in JS context when referenced from both CSS and a lazily compiled JS chunk. (by @xiaoxiaojx in #20801)
Include missing generator options in hash to ensure persistent cache invalidation when configuration changes (CssGenerator
exportsOnly, JsonGeneratorJSONParse, WebAssemblyGeneratormangleImports). (by @xiaoxiaojx in #20821)Fix
||default value handling in ProgressPlugin and ManifestPlugin that incorrectly overrode user-provided falsy values (e.g.modules: false,entries: false,entrypoints: false). (by @xiaoxiaojx in #20823)Migrate from
mime-typestomime-db. (by @alexander-akait in #20812)Handle
@charsetat-rules in CSS modules. (by @alexander-akait in #20831)Marked all experimental options in types. (by @alexander-akait in #20814)
v5.106.1Compare Source
Patch Changes
Fix two ES5-environment regressions in the anonymous default export
.namefix-up: the generated code referenced an undeclared__WEBPACK_DEFAULT_EXPORT__binding causingReferenceError, and usedReflect.definePropertywhich is not available in pre-ES2015 runtimes. The fix-up now references the real assignment target and usesObject.defineProperty/Object.getOwnPropertyDescriptor. (by @xiaoxiaojx in #20796)Prevent
!importantfrom being renamed as a local identifier in CSS modules. (by @xiaoxiaojx in #20798)Use compiler context instead of module context for CSS modules local ident hashing to avoid hash collisions when files with the same name exist in different directories. (by @xiaoxiaojx in #20799)
v5.106.0Compare Source
Minor Changes
Add
exportType: "style"for CSS modules to inject styles into DOM via HTMLStyleElement, similar to style-loader functionality. (by @xiaoxiaojx in #20579)Add
contextoption support for VirtualUrlPlugin (by @xiaoxiaojx in #20449)Generate different
CssModuleinstances for differentexportTypevalues. (by @xiaoxiaojx in #20590)Added the
localIdentHashFunctionoption to configure the hash function to be used for hashing. (by @alexander-akait in #20694)Additionally, the
localIdentNameoption can now be a function.Added support for destructuring assignment
requirein cjs, allowing for tree shaking. (by @ahabhgk in #20548)Added the
validateoption to enable/disable validation in webpack/plugins/loaders, also implemented API to make it inside plugins. (by @xiaoxiaojx in #20275)Added
sourcesupport for async WASM modules. (by @magic-akari in #20364)Patch Changes
Add a static getSourceBasicTypes method to the Module class to prevent errors across multiple versions. (by @xiaoxiaojx in #20614)
Included fragment groups in the conflicting order warning for CSS. (by @aryanraj45 in #20660)
Avoid rendering unused top-level
__webpack_exports__declaration when output ECMA module library. (by @hai-x in #20669)Fixed resolving in CSS modules. (by @alexander-akait in #20771)
Allow external modules place in async chunks when output ECMA module. (by @hai-x in #20662)
Implement
deprecateflag in schema for better TypeScript support to show which options are already deprecated by the configuration (by @bjohansebas in #20432)Set
.nameto"default"for anonymous default export functions and classes per ES spec (by @xiaoxiaojx in #20773)Hash entry chunks after runtime chunks to prevent stale content hash references in watch mode (by @xiaoxiaojx in #20724)
Fix multiple bugs and optimizations in CSS modules: correct third code point position in walkCssTokens number detection, fix multiline CSS comment regex, fix swapped :import/:export error message, fix comma callback incorrectly popping balanced stack, fix cache comparison missing array length check, fix match.index mutation side effect, move publicPathAutoRegex to module scope, precompute merged callbacks in consumeUntil, simplify redundant ternary in CssGenerator, fix typo GRID_TEMPLATE_ARES, remove duplicate grid-column-start, and merge duplicate getCompilationHooks calls. (by @xiaoxiaojx in #20648)
Correct url() path resolution and preserve source maps for non-link CSS export types (style, text, css-style-sheet) (by @xiaoxiaojx in #20717)
Emit error when proxy server returns non-200 status code in HttpUriPlugin instead of silently failing. (by @xiaoxiaojx in #20646)
import.metaas standalone expression now returns a complete object with known properties (url,webpack,main,env) instead of an empty object({}), and hoists it as a module-level variable to ensureimport.meta === import.metaidentity. Inpreserve-unknownmode (ESM output), the hoisted object merges runtimeimport.metaproperties viaObject.assign. (by @xiaoxiaojx in #20658)Fix incorrect condition in FileSystemInfo that always evaluated to false, preventing trailing slash removal from directory paths during build dependency resolution. (by @xiaoxiaojx in #20649)
fix: VirtualUrlPlugin absolute path virtual module IDs getting concatenated with compiler context (by @xiaoxiaojx in #20656)
When a virtual module ID is an absolute path (e.g.
virtual:C:/project/user.js), the auto-derived context was incorrectly joined withcompiler.context, producing a concatenated path likeC:\cwd\C:\project. Now absolute-path contexts are used directly.All deprecated methods and options now have
@deprecatedflag in types. (by @alexander-akait in #20707)Fix
CompatibilityPluginto correctly rename__webpack_require__when it appears as an arrow function parameter (e.g.(__webpack_module, __webpack_exports, __webpack_require__) => { ... }). (by @hai-x in #20661)v5.105.4Compare Source
Patch Changes
Add
Module.getSourceBasicTypesto distinguish basic source types and clarify how modules with non-basic source types likeremotestill produce JavaScript output. (by @xiaoxiaojx in #20546)Handle
createRequirein expressions. (by @alexander-akait in #20549)Fixed types for multi stats. (by @alexander-akait in #20556)
Remove empty needless js output for normal css module. (by @JSerFeng in #20162)
Update
enhanced-resolveto support new features fortsconfig.json. (by @alexander-akait in #20555)Narrows export presence guard detection to explicit existence checks on namespace imports only, i.e. patterns like "x" in ns. (by @hai-x in #20561)
v5.105.3Compare Source
Patch Changes
Context modules now handle rejections correctly. (by @alexander-akait in #20455)
Only mark asset modules as side-effect-free when
experimental.futureDefaultsis set to true, so asset-copying use cases (e.g.import "./x.png") won’t break unless the option is enabled. (by @hai-x in #20535)Add the missing webpack_exports declaration in certain cases when bundling a JS entry together with non-JS entries (e.g., CSS entry or asset module entry). (by @hai-x in #20463)
Fixed HMR failure for CSS modules with @import when exportType !== "link". When exportType is not "link", CSS modules now behave like JavaScript modules and don't require special HMR handling, allowing @import CSS to work correctly during hot module replacement. (by @xiaoxiaojx in #20514)
Fixed an issue where empty JavaScript files were generated for CSS-only entry points. The code now correctly checks if entry modules have JavaScript source types before determining whether to generate a JS file. (by @xiaoxiaojx in #20454)
Do not crash when a referenced chunk is not a runtime chunk. (by @alexander-akait in #20461)
Fix some types. (by @alexander-akait in #20412)
Ensure that missing module error are thrown after the interception handler (if present), allowing module interception to customize the module factory. (by @hai-x in #20510)
Added
createRequiresupport for ECMA modules. (by @stefanbinoj in #20497)Added category for CJS reexport dependency to fix issues with ECMA modules. (by @hai-x in #20444)
Implement immutable bytes for
bytesimport attribute to match tc39 spec. (by @alexander-akait in #20481)Fixed deterministic search for graph roots regardless of edge order. (by @veeceey in #20452)
v5.105.2Compare Source
Patch Changes
WebpackPluginInstancetype regression. (by @alexander-akait in #20440)v5.105.1Compare Source
Patch Changes
Fix VirtualUrlPlugin Windows compatibility by sanitizing cache keys and filenames. Cache keys now use
toSafePathto replace colons (:) with double underscores (__) and sanitize other invalid characters, ensuring compatibility with Windows filesystem restrictions. (by @xiaoxiaojx in #20424)Revert part of the createRequire generation behavior for
require("node:...")to keep compatibility with those modules exports, e.g.const EventEmitter = require("node:events");. (by @hai-x in #20433)Skip guard collection when exports-presence mode is disabled to improve parsing performance. (by @hai-x in #20433)
v5.105.0Compare Source
Minor Changes
Allow resolving worker module by export condition name when using
new Worker()(by @hai-x in #20353)Detect conditional imports to avoid compile-time linking errors for non-existent exports. (by @hai-x in #20320)
Added the
tsconfigoption for theresolveroptions (replacement fortsconfig-paths-webpack-plugin). Can befalse(disabled),true(use the defaulttsconfig.jsonfile to search for it), a string path totsconfig.json, or an object withconfigFileandreferencesoptions. (by @alexander-akait in #20400)Support
import.defer()for context modules. (by @ahabhgk in #20399)Added support for array values to the
devtooloption. (by @hai-x in #20191)Improve rendering node built-in modules for ECMA module output. (by @hai-x in #20255)
Unknown import.meta properties are now determined at runtime instead of being statically analyzed at compile time. (by @xiaoxiaojx in #20312)
Patch Changes
Fixed ESM default export handling for
.mjsfiles in Module Federation (by @y-okt in #20189)Optimized
import.meta.envhandling in destructuring assignments by using cached stringified environment definitions. (by @xiaoxiaojx in #20313)Respect the
stats.errorStackoption in stats output. (by @samarthsinh2660 in #20258)Fixed a bug where declaring a
modulevariable in module scope would conflict with the defaultmoduleArgument. (by @xiaoxiaojx in #20265)Fix VirtualUrlPlugin to set resourceData.context for proper module resolution. Previously, when context was not set, it would fallback to the virtual scheme path (e.g.,
virtual:routes), which is not a valid filesystem path, causing subsequent resolve operations to fail. (by @xiaoxiaojx in #20390)Fixed Worker self-import handling to support various URL patterns (e.g.,
import.meta.url,new URL(import.meta.url),new URL(import.meta.url, import.meta.url),new URL("./index.js", import.meta.url)). Workers that resolve to the same module are now properly deduplicated, regardless of the URL syntax used. (by @xiaoxiaojx in #20381)Reuse the same async entrypoint for the same Worker URL within a module to avoid circular dependency warnings when multiple Workers reference the same resource. (by @xiaoxiaojx in #20345)
Fixed a bug where a self-referencing dependency would have an unused export name when imported inside a web worker. (by @samarthsinh2660 in #20251)
Fix missing export generation when concatenated modules in different chunks share the same runtime in module library bundles. (by @hai-x in #20346)
Fixed
import.meta.env.xxxbehavior: when accessing a non-existent property, it now returns empty object instead of full object at runtime. (by @xiaoxiaojx in #20289)Improved parsing error reporting by adding a link to the loader documentation. (by @gaurav10gg in #20244)
Fix typescript types. (by @alexander-akait in #20305)
Add declaration for unused harmony import specifier. (by @hai-x in #20286)
Fix compressibility of modules while retaining portability. (by @dmichon-msft in #20287)
Optimize source map generation: only include
ignoreListproperty when it has content, avoiding empty arrays in source maps. (by @xiaoxiaojx in #20319)Preserve star exports for dependencies in ECMA module output. (by @hai-x in #20293)
Consider asset modulem to be side-effect free. (by @hai-x in #20352)
Avoid generating JavaScript modules for CSS exports that are not used, reducing unnecessary output and bundle size. (by @xiaoxiaojx in #20337)
v5.104.1Compare Source
Patch Changes
2efd21b: Reexports runtime calculation should not accessing WEBPACK_IMPORT_KEY decl with var.c510070: Fixed a user information bypass vulnerability in the HttpUriPlugin plugin.v5.104.0Compare Source
Minor Changes
d3dd841: Use method shorthand to render module content in__webpack_modules__object.d3dd841: Enhanceimport.meta.envto support object access.4baab4e: Optimize dependency sorting in updateParent: sort each module only once by deferring to finishUpdateParent(), and reduce traversal count in sortWithSourceOrder by caching WeakMap values upfront.04cd530: Handle more at-rules for CSS modules.cafae23: Added options to control the renaming of at-rules and various identifiers in CSS modules.d3dd841: Addedbase64url,base62,base58,base52,base49,base36,base32andbase25digests.5983843: Provide a stable runtime function variable__webpack_global__.d3dd841: ImprovedlocalIdentNamehashing for CSS.Patch Changes
22c48fb: Added module existence check for informative error message in development mode.50689e1: Use the fully qualified class name (or export name) for[fullhash]placeholder in CSS modules.d3dd841: Support universal lazy compilation.d3dd841: Fixed module library export definitions when multiple runtimes.d3dd841: Fixed CSS nesting and CSS custom properties parsing.d3dd841: Don't write fragment from URL to filename and apply fragment to module URL.aab1da9: Fixed bugs forcss/globaltype.d3dd841: Compatibilityimport.meta.filenameandimport.meta.dirnamewithevaldevtools.d3dd841: Handle nested__webpack_require__.728ddb7: The speed of identifier parsing has been improved.0f8b31b: Improve types.d3dd841: Don't corruptdebugIdinjection whenhidden-source-mapis used.2179fdb: Re-validate HttpUriPlugin redirects against allowedUris, restrict to http(s) and add a conservative redirect limit to prevent SSRF and untrusted content inclusion. Redirects failing policy are rejected before caching/lockfile writes.d3dd841: SerializeHookWebpackError.d3dd841: Added ability to use built-in properties in dotenv and define plugin.3c4319f: Optimizing the regular expression character class by specifying ranges for runtime code.d3dd841: Reduce collision for local indent name in CSS.d3dd841: Remove CSS link tags when CSS imports are removed.v5.103.0Compare Source
Features
DotenvPluginand top leveldotenvoption to enable this pluginWebpackManifestPluginignoreListoption in devtool pluginsimport.meta.envsupport for environment variablesimport.meta.dirnameandimport.meta.filenameimport.defer()for statistical pathimport file from "./file.json" with { type: "json" }__dirname/__filename/import.meta.dirname/import.meta.filenamefor universal targetexportTypeoption withlink(by default), "text" andcss-style-sheetvaluescomposespropertiesFixes
dependOnchunk must be loaded before the common chunkglobalThissupported__dirnameand__filenamefor ES modules__webpack_export__and__webpack_require__in already bundled codehashDigesttypev5.102.1Compare Source
Fixes
extendswithenvforbrowserslistJSONPfragment format for web workers.browserslist.commonjsexternals forSystemJSformat.import.metawarning messages to be more clear when used directly.v5.102.0Compare Source
Features
import file from "./file.ext" with { type: "bytes" }to get the content asUint8Array(look at example)import file from "./file.ext" with { type: "text" }to get the content as text (look at example)snapshot.contextModuleto configure snapshots options for context modulesextractSourceMapoption to implement the capabilities of loading source maps by comment, you don't needsource-map-loader(look at example)topLevelAwaitexperiment is now stable (you can removeexperiments.topLevelAwaitfrom yourwebpack.config.js)layersexperiment is now stable (you can removeexperiments.layersfrom yourwebpack.config.js)Fixes
thisexportstimeoutattribute of script tages-lexerformjsfiles for build dependencies__non_webpack_require__for ES moduleschunk.auxiliaryFilescreateRequireonly when output is ES module and target is nodePerformance Improvements
v5.101.3Compare Source
Fixes
v5.101.2Compare Source
Fixes
createRequirev5.101.1Compare Source
Fixes
processAdditionalAssetshookModuleFactoryclassGetChunkFilenamefailure caused bydependOnentrymodule.exportsbundle to ESM libraryRawModuleand condition ofisDeferredallowInlineStartupv5.101.0Compare Source
Fixes
output.environment.nodePrefixForCoreModulesoption everywhereoutput.importMetaNameoption everywhereFeatures
deferImportoption to parser optionsPerformance Improvements
requirein some placesv5.100.2Compare Source
Fixes
Performance Improvements
importPhasesPluginonly when enabledeferImport(#19689)v5.100.1Compare Source
Fixes
v5.100.0Compare Source
Fixes
Features
splitChunkswhen external variables and runtimeChunk are not set.usingkeywordnew URL(...)virtual:schemePerformance Improvements
new URL(...)evaluate expressionv5.99.9Compare Source
Fixes
v5.99.8Compare Source
Fixes
@types/nodev5.99.7Compare Source
Fixes
defaultreexport (#19463)causeof any errors anderrorsof AggregateError in stats output@types/json-schemain typesv5.99.6Compare Source
Fixes
modulelibrary when mixing commonjs and esm modulesFlagDependencyExportsPluginfor libraries where it requiredv5.99.5Compare Source
Fixes
v5.99.4Compare Source
Fixes
if/elsev5.99.3Compare Source
Fixes
if/elsev5.99.2Compare Source
Fixes
v5.99.1Compare Source
Fixes
v5.99.0Compare Source
Fixes
__proto__propertymoduleandmoduleESM libraries have been union and code generation has been improvedcommonjs-staticlibrarymeta.webpackASTxxhash64forcache.hashAlgorithmwhenexperiments.futureDefaultsenabledFeatures
new Worker(import.meta.url)andnew Worker(new URL(import.meta.url))syntaxPerformance Improvements
Chores
stricttypes fortypescriptv5.98.0Compare Source
Fixes
filenameTemplatein new split chunk #19104 by @henryqdineenblob:protocol when public path isauto#19199 by @alexander-akaitoutput.charseteverywhere #19202 by @alexander-akaitBuildInfoandBuildMetatype definitions #19200 by @inottnPerformance Improvements
FlagDependencyExportsPluginfor large JSON by depth #19058 by @hai-xstartsWithfor matching instead of converting the string to a regex #19207 by @inottnChores
nanoidfrom 3.3.7 to 3.3.8 #19063 by @dependabotDefaultStatsFactoryPlugin#19156 by @Andaristreadme.mdby adding video links for understanding webpack #19101 by @Vansh5632Features
/* webpackIgnore: true */forrequire.resolve#19201 by @alexander-akaitContinuous Integration
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.97.1...v5.98.0
v5.97.1Compare Source
Bug Fixes
v5.97.0Compare Source
Bug Fixes
output.iifeistrueand output.library.type isumd[uniqueName]tolocalIdentNamewhen it is emptyNew Features
MergeDuplicateChunkspluginoutput.cssHeadDataCompressionoption was deleted@valueat-rules in CSS modules:importrules in CSS modulesurlandimportoptions for CSSPerformance
v5.96.1Compare Source
Bug Fixes
@types/eslint-scopeto dependencieSvalidatev5.96.0Compare Source
Bug Fixes
output.environment.dynamicImportto determine chunk format when no browserslist or targetoptimization.avoidEntryIifeoutput.devtoolNamespaceimportModuleon the execution stageexportandimportcss/autoconsiders a module depending on its filename ascss(pure CSS) orcss/local, before it wascss/globalandcss/localnodetargeturl()s and@importparsingNew Features
/* webpackIgnore: true */for CSS filessrc()supportv5.95.0Compare Source
Bug Fixes
defaultfor import context element dependencymoduleandimportinmodule-importfor externalsimport'sEnvironmentPlugindefault values types less strictNew Features
optimization.avoidEntryIifeoption (trueby default for theproductionmode)Performance
v5.94.0Compare Source
Bug Fixes
data/http/httpsprotocols in source mapsbigintoptimistic when browserslist not foundNew Features
webpackIgnorefornew URL()construction@importpathinfo supportSecurity
v5.93.0Compare Source
Bug Fixes
DefinePluginquieter under default log levelNew Features
binarygenerator option for asset modules to explicitly keep source maps produced by loadersmodern-modulelibrary value for tree shakable outputoverrideStrictoption to override strict or non-strict mode for javascript modulesv5.92.1Compare Source
Bug Fixes
v5.92.0Compare Source
Bug Fixes
subtractRuntimefunction for runtime logiccss/globaltype now handles the exports name@keyframeand@propertyat-rules incss/globaltypestats.hasWarnings()method now respects theignoreWarningsoptionArrayQueueiterator__webpack_exports_info__.a.b.canMangleCommonJsChunkFormatPluginpluginchunkLoadingoption to theimportwhen environment is unknown and output is modulemodulechunkFormat usedcssmodule type should not allow parser to switch modeNew Features
import attributesspec (withkeyword)node:prefix for Node.js core modules in runtime codeimportsFieldsoption for resolverInitFragmentclass for pluginscompileBooleanMatcherutil for pluginsInputFileSystemandOutputFileSystemtypesesModulegenerator option for CSS modulesv5.91.0Compare Source
Bug Fixes
unsafeCacheoption to be a proxy objectsnapshot.unmanagedPathsoptionfstypeslayer/supports/mediafor external CSS importsNew Features
__webpack_nonce__for CSS chunksfetchPriorityfor CSS chunksproductionmode by default)v5.90.3Compare Source
Bug Fixes
Stats.toJson()andStats.toString()Perf
v5.90.2Compare Source
Bug Fixes
Math.imulinfnv1a32to avoid loss of precision, directly hash UTF16 valuessetStatus()of the HMR module should not return an array, which may cause infinite recursion__webpack_exports_info__.xxx.canMangleshouldn't always same as defaultactiveStatetry/catchDependencies & Maintenance
v5.90.1Compare Source
Bug Fixes
unmanagedPathsin defaultspreOrderIndexandpostOrderIndexPerformance
compareStringsNumericnumberHashusing 32-bit FNV1a for small ranges, 64-bit for largerv5.90.0Compare Source
Bug Fixes
RemoveParentModulesPluginvia bigint arithmeticServerandDirentfetchPriorityto hmr runtime'sensureChunkfunctionoutput.environment.arrowFunctionoption/*#__PURE__*/to generatedJSON.parse()amdexternals andamdlibrarySideEffectsFlagPluginwith namespace re-exportsorstrictModuleErrorHandlingis now workingNew Features
falsefor dev server inwebpack.config.jsnode-moduleoption for thenode.__filename/__dirnameand enable it by default for ESM targetsnapshot.unmanagedPathsoptionMultiCompilerOptionstypeexportsOnlyoption to CSS generator optionsDependencies & Maintenance
Full Changelog: https://github.com/webpack/webpack/compare/v5.89.0...v5.90.0
v5.89.0Compare Source
New Features
Dependencies & Maintenance
Full Changelog: https://github.com/webpack/webpack/compare/v5.88.2...v5.89.0
v5.88.2Compare Source
Bug Fixes
Full Changelog: https://github.com/webpack/webpack/compare/v5.88.1...v5.88.2
v5.88.1Compare Source
Developer Experience
Full Changelog: https://github.com/webpack/webpack/compare/v5.88.0...v5.88.1
v5.88.0Compare Source
New Features
css/autoas the default css mode by @burhanuday in #17399Bug Fixes
Developer Experience
Dependencies & Maintenance
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.87.0...v5.88.0
v5.87.0Compare Source
New Features
fetchPriorityfeature as parser option and magic comment by @alexander-akait in #17249Bug Fixes
Developer Experience
Dependencies & Maintenance
New Contributors
@aboktor made their first contribution in #16991 #16989
@silverwind made their first contribution in #17339 via #17329
Full Changelog: https://github.com/webpack/webpack/compare/v5.86.0...v5.87.0
v5.86.0Compare Source
New Features
ProgressPluginby @alexander-akait in #17312RegExptosplitChunks.chunksby @hyf0 in #17332Bug Fixes
ContextModuletypes by @huozhi in #17310__non_webpack_require__with ES modules by @alexander-akait in #17308Chunk,ChunkGroup, and other plugins by @alexander-akait in #1731jsextension for eval source maps when extension is not resolvable by @alexander-akait in #17331Developer Experience
Dependencies & Maintenance
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.85.1...v5.86.0
v5.85.1Compare Source
Bug Fixes
BasicEvaluatedExpression.getMemberRangeStartshas been changed toBasicEvaluatedExpression.getMemberRanges, please see type definition changes and the pull request for more information.Dependencies & Maintenance
Full Changelog: https://github.com/webpack/webpack/compare/v5.85.0...v5.85.1
v5.85.0Compare Source
New Features
readonlycache mode by @vankop in #15470environmentin loader context by @alexander-akait in #17281addModule()support in worklets -*context.audioWorklet.addModule()by @alexander-akait in #17212Bug Fixes
Developer Experience
Dependencies & Maintenance
Full Changelog: https://github.com/webpack/webpack/compare/v5.84.1...v5.85.0
v5.84.1Compare Source
Bug Fixes
Dependencies & Maintenance
Full Changelog: https://github.com/webpack/webpack/compare/v5.84.0...v5.84.1
v5.84.0Compare Source
New Features
appendoption as a function by @snitin315 in #17252Bug Fixes
@importby @alexander-akait in #17229Developer Experience
JavascriptParserandModuleDependencysubclasses by @alexander-akait in #17236strict-mode quality for Configuration/Normalization objects by @alexander-akait in #17247with { type: "json" }by @alexander-akait in #17230Dependencies & Maintenance
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.83.1...v5.84.0
v5.83.1Compare Source
Bug Fixes
Full Changelog: https://github.com/webpack/webpack/compare/v5.83.0...v5.83.1
v5.83.0Compare Source
New Features
Bug Fixes
chunkgroup.groupsIterablereturn type by @TheLarkInn in #17196Developer Experience
ChunkGroupto type definitions by @TheLarkInn in #17201NormalModuleFactory'sResolveDatatype to public interface by @TheLarkInn in #17195compilation.afterChunkshook by @TheLarkInn in #17202Dependencies & Maintenance
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.82.1...v5.83.0
v5.82.1Compare Source
Bug Fixes
importModulewhen CSS enabled by @alexander-akait in #17140output.hashFunctionwas failing to generate debug hash by @ahabhgk in #16950Developer Experience
Dependencies & Maintenance
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.82.0...v5.82.1
v5.82.0Compare Source
New Features
Bug Fixes
media/supports/layerfrom parent CSS module by @alexander-akait in #17115#hashURL as external (similar to Parcel) by @alexander-akait in #17116Tests & Contributor Experience
Developer Experience
StringXorclass. by @TheLarkInn in #17070numberHashby @TheLarkInn in #17072JavascriptParserby @TheLarkInn in #17094BasicEvaluatedExpressionby @TheLarkInn in #17096Dependencies & Maintenance
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.81.0...v5.82.0
v5.81.0Compare Source
New Features
ignoreBrowserWarningsoption to ignore browser console warnings in ModuleFederation by @indeediansbrett in #16388Bug Fixes
Tests & Contributor Experience
providetogetOrInsertin MapHelpers and document it better by @TheLarkInn in #17060Developer Experience
Dependencies & Maintenance
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.80.0...v5.81.0
v5.80.0Compare Source
New Features
import.metaby @vankop in #16996AwaitExpressionby @vankop in #16995errorsSpace,warningsSpacefor more readable traces in stats by @vankop in #15450Bug Fixes
url()/src()/image-set()/image()by @alexander-akait in #16978statement.finalizerin parser by @xiaoboost in #17016moduleIdassignment due to encounteringNaNin sort function by @scameron in #16933Tests & Contributor Experience
@supportsfield by @alexander-akait in #17011BannerPluginby @jeffin143 in #10736finializerfrom cspell.json by @snitin315 in #17022Developer Experience
wasm-bindgenexample toexampleby @gthb in #14313Dependencies & Maintenance
@webassemblyjsby @alexander-akait in #17003New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.79.0...v5.80.0
v5.79.0Compare Source
New Features
DefinePluginby @vankop in #16941Bugfixes
DefaultStatsPrinterby @snitin315 in #16882[contenthash]template support inDllPlugin'snameoption by @snitin315 in #16935readRecordscompiler hook was causing hangs in conjunction with theReadRecordsPluginby @snitin315 & @zookatron in #16944@MEDIAby @alexander-akait in #16915Developer Experience
ExternalsOption types by @snitin315 in #12774Contributor Experience
shareScopeoption by @snitin315 in #16943New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.78.0...v5.79.0
v5.78.0Compare Source
Features
amdContainersupport for AMD libraries (Fixes #16561) by @long76 in #16562Bugfixes
@mediaor@supportsnow properly are replaced with unique identifiers by @noreiller in #15812oneOfrule has been picked multiple times by @xiaoxiaojx in #16477createRequiresupport fornode:moduleprefix by @alexander-akait in #16904Performance
ErrorHelpersnamed functions; Add types by @TheLarkInn in #16893ModuleTypeConstantsfor plugins by @TheLarkInn in #16896Contributor Experience
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.77.0...v5.78.0
v5.77.0Compare Source
New Features
output.workerPublicPathby @thomastay in #16671Developer Experience
resolve.extensionserror message to suggest when"."is missing before the extension by @snitin315 in #16807Contributor Experience
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.76.3...v5.77.0
v5.76.3Compare Source
Bugfixes
experiments.outputModule(ES Module Output) by @snitin315 in #16809inspector/promises,readline/promises, andstream/consumersby @ShenHongFei in #16841NODE_PATHenv variable by @snitin315 in #16808resolveResourceErrorHintsby @snitin315 in #16806loaderstoken support tomoduleFilenameTemplatefunction call by @pgoldberg in #16756enabledLibraryTypesin internalContainerPluginby @PengBoUESTC in #16635New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.76.2...v5.76.3
v5.76.2Compare Source
Bugfixes
publicPathRuntimewould cause concatenated runtime errors by @snitin315 in #16811onScriptCompletefunction by @ahaoboy in #16347RealContentHashPluginwas not respectingoutput.hashSalt's ability to cause a force recalculation of[contenthash]for emitted assets by @dmichon-msft #16789Performance
ModuleGraphdue to instance property declarations occurring outside of constructor by @snitin315 in #16830Developer Experience
webpack-sourcestypings forSourceinstances by @snitin315 in #16805New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.76.1...v5.76.2
v5.76.1Compare Source
Fixed
assert/strictbuilt-in toNodeTargetPluginRevert
hashRegExplookup by @ryanwilsonperkin in #16759v5.76.0Compare Source
Bugfixes
generatedCodeinfo to fix bug in asset module cache restoration by @ryanwilsonperkin in #16703hashRegExplookup by @ryanwilsonperkin in #16759Features
targettoLoaderContexttype by @askoufis in #16781Security
Repo Changes
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.75.0...v5.76.0
v5.75.0Compare Source
Bugfixes
experiments.*normalize tofalsewhen opt-outNaN%windowbefore trying to access iteval-nosources-*actually exclude sourcesFeatures
@importto extenal CSS when using experimental CSS in nodei64support to the deprecated WASM implementationDeveloper Experience
EnableWasmLoadingPluginv5.74.0Compare Source
Features
resolve.extensionAliasoption which allows to alias extensions.jsextension to imports when the file really has a.tsextension (typescript +"type": "module")ProvidePluginBugfixes
shareScopeoption forModuleFederationPlugin"use-credentials"also for same origin scriptsPerformance
Extensibility
HarmonyImportDependencyfor pluginsv5.73.0Compare Source
Features
dynamicImportModeand prefetch and preloadimport { createRequire } from "module"in source codeBugfixes
return"field"in ModuleDeveloper Experience
PathDatain typingsv5.72.1Compare Source
Bugfixes
__webpack_nonce__with HMRinoperator in some casesthis.importModulev5.72.0Compare Source
Features
Bugfixes
inoperator with nested exportsv5.71.0Compare Source
Features
uniqueNamewhen using aoutput.librarywhich includes placeholdersinof a imported bindingBugfixes
chunkLoadingoption in module moduleevaluateExpressionreturnsnulllazy-onceContext modulesrunAsChildcallbackv5.70.0Compare Source
Features
baseUritoentryoptions to configure a static base uri (the base ofnew URL())__webpack_exports_info__.name.canMangleexperiments.buildHttpimport.meta.webpackContextas ESM alternative torequire.contextBugfixes
globalto a variableexperiments.outputModuleandloaderContext.importModulewith multiple chunksoutput.cleanwill keep HMR assets for at least 10s to allow HMR to access them even when compilation is faster then the browserPerformance
Developer Experience
Contributing
v5.69.1Compare Source
Revert
v5.69.0Compare Source
Features
resolve.aliasorresolve.modules) when creating an context moduleutil/typesto node.js built-in modules__webpack_exports_info__.<name>.canMangleapiBugfixes
stageoption when instrumenting plugins for the ProfilingPlugin#in paths of loadersexperiments.buildHttpContributing
Developer Experience
v5.68.0Compare Source
Features
__webpack_module__and__webpack_module__.idto the apiBugfixes
v5.67.0Compare Source
Features
experiments.cssSyncModuleIdsPluginto sync module ids between server and client compilationDeterministicModuleIdsPluginto allow to generate equal idsDeveloper Experience
nullto errors in callbacksBugfixes
experiments.css|webpack-hot-middleware/clientfrom lazy compilationContributing
v5.66.0Compare Source
Features
output.library.type: "commonjs-static"to emit a statically analyse-able commonjs module (for node.js esm interop support)experiments.css(very experimental)Bugfixes
experiments.lazyCompilation[absolute-resource-path]for SourceMap module namingPerformance
watchOptions.aggregateTimeoutto 20msv5.65.0Compare Source
Features
undefinednowBugfixes
singletonflag withoutrequiredVersionin Module Federationwatchpackfor context time info bugfixPerformance
Developer Experience
output.globalObjectcontains a non-trival expressionscripttype external with invalid syntaxResolver,StatsOptionsandResolvePluginInstancePreparations for the future
hashDigestLengthwill default to 16 in webpack 6 (experiments.futureDefaults)v5.64.4Compare Source
Bugfixes
Performance
Developer Experience
v5.64.3Compare Source
Performance
Infinityis used in configurationv5.64.2Compare Source
Bugfixes
v5.64.1Compare Source
Bugfixes
require(...).propertyinrequire.ensureoutput.clean: trueunsafeCachewithinmanagedPaths(node_modules)v5.64.0Compare Source
Features
asyncChunks: booleanoption to disable creation of async chunksBugfixes
experiments.backCompat: falsePerformance
v5.63.0Compare Source
Features
chunkLoading: falseto disable on-demand loadingBugfixes
import 'single-quote'in esm build dependenciesv5.62.2Compare Source
Bugfixes
__system_context__injection when using thelibraryoption on entrypointexportsPresence: "error"by default infutureDefaultsexportPresence->exportsPresencetypoexperiments.cacheUnaffectedv5.62.1Compare Source
Bugfix
;v5.62.0Compare Source
Features
parser.javascript.reexportExportsPresence: falseallows to disable warnings for non-existing exports during the migration fromexport ... from "..."toexport type ... from "..."for type reexports in TypeScriptexperiments.backCompat: falseto disable some expensive deprecations for better performanceBugfixes
['catch']instead of.catchfor better ES3 supportnew (require("...")).Something(){ require }object literalssplitChunks.chunksoption is now correctly used forsplitChunks.fallbackCacheGroup.maxSizetoolistenoption, allow to omitportDeveloper Experience
/// <reference types="webpack/module" />to use the typings in typescript modules"types": [..., "webpack/module"]in tsconfigv5.61.0Compare Source
Bugfixes
pathsubmodules in the node.js default externalsPerformance
Contribution
v5.60.0Compare Source
Features
experiments.lazyCompilation. e. g. port, https stuffBugfixes
output.hashFunctionused to persistent caching toobuildDependenciesSet correctly when loaders are added inbeforeLoadershookv5.59.1Compare Source
Bugfixes
experiments.buildHttpv5.59.0Compare Source
Features
/*#__PURE__*/forObject()in generated codemanaged/immutablePathsexperiments.buildHttpsplitChunks.minSizeReductionoptionBugfixes
waitForwhen modules are unsafe cachedv5.58.2Compare Source
Bugfixes
Performance
v5.58.1Compare Source
Bugfixes
.webpack[]suffix to not execute rulesv5.58.0Compare Source
Features
diagnostics_channelto node builtinsPerformance
v5.57.1Compare Source
Bugfix
v5.57.0Compare Source
Performance
Bugfixes
v5.56.1Compare Source
Bugfix
v5.56.0Compare Source
Performance
v5.55.1Compare Source
Bugfixes
experiments.cacheUnaffectedv5.55.0Compare Source
Performance
experiments.cacheUnaffectedmodule.unsafeCachev5.54.0Compare Source
Features
&&||and??output.hashFunctionevalis used in a moduleBugfixes
Performance
output.hashFunction: "xxhash64"for a super fast wasm based hash functionexperiments.cacheUnaffectedwhich caches computations for modules that are unchanged and reference only unchanged modulesv5.53.0Compare Source
Features
node.__dirname/__filename: "warn-mock"which warns on usage (will be enabled in webpack 6 by default)Bugfixes
stream/webto Node.js externalsExperiments
experiments.futureDefaultsto enable defaults for webpack 6v5.52.1Compare Source
Performance
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.
5f64e7801ftobcc01325debcc01325deto862ba60345862ba60345toe6f81559ece6f81559ecto1c9de88acc1c9de88acctoab6a0a8582ab6a0a8582to3e3c641b493e3c641b49to3139d43042View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.