chore(deps): update dependency webpack to v5#21
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
Author
|
cc6c09f to
7fcef9e
Compare
7fcef9e to
5284592
Compare
5284592 to
74ce630
Compare
74ce630 to
084e2b5
Compare
084e2b5 to
f5ae628
Compare
f5ae628 to
67348f2
Compare
67348f2 to
c228e0d
Compare
c228e0d to
c5b57b2
Compare
c5b57b2 to
23b7915
Compare
23b7915 to
83c2e1e
Compare
83c2e1e to
9ae1f15
Compare
29dddb1 to
e5a5e3e
Compare
e5a5e3e to
5eed4f9
Compare
a73a861 to
0a33767
Compare
7220068 to
9cdd85f
Compare
9cdd85f to
8dab977
Compare
b30df54 to
4d0b6a4
Compare
4d0b6a4 to
1c6bc2b
Compare
1c6bc2b to
8cbc0ce
Compare
8cbc0ce to
e55d210
Compare
e55d210 to
fcd92b4
Compare
9387ae1 to
ea64f4c
Compare
ea64f4c to
942f6b6
Compare
b4e5a4b to
15802e3
Compare
583f131 to
7d39908
Compare
7d39908 to
9e70614
Compare
9e70614 to
926a586
Compare
59ee318 to
6e514c7
Compare
6e514c7 to
d43f2ac
Compare
6f4b37d to
ca335ba
Compare
abbbee0 to
ca55ccd
Compare
ca55ccd to
8408829
Compare
7f5dde4 to
e7cd2ac
Compare
e7cd2ac to
3de7950
Compare
3de7950 to
d2d6a04
Compare
d01ec86 to
90accda
Compare
90accda to
e3f3656
Compare
cc3cf93 to
9dbf844
Compare
9dbf844 to
21d8c72
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
4.41.2→5.107.1Release Notes
webpack/webpack (webpack)
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
extendswithenvfor `browserslistConfiguration
📅 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 was generated by Mend Renovate. View the repository job log.