Skip to content

chore(deps): update dependency webpack to ^5.107.0#1647

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/webpack-5.x
Open

chore(deps): update dependency webpack to ^5.107.0#1647
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/webpack-5.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented May 6, 2026

This PR contains the following updates:

Package Change Age Confidence
webpack ^5.105.4^5.107.0 age confidence

Release Notes

webpack/webpack (webpack)

v5.107.0

Compare Source

Minor Changes
  • Add module.generator.javascript.anonymousDefaultExportName option to control whether webpack sets .name to "default" for anonymous default export functions and classes per ES spec. Defaults to true for applications and false for libraries (when output.library is set) to avoid unnecessary bundle size overhead. Also extract anonymous default export .name fix-up into a shared runtime helper (__webpack_require__.dn), replacing repeated inline Object.defineProperty / Object.getOwnPropertyDescriptor calls 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, and link export types (by @​xiaoxiaojx in #​20851)

  • The generator.exportsConvention function form for CSS modules now accepts string[] in addition to string. (by @​alexander-akait in #​20914)

  • Add linkInsert hook to CssLoadingRuntimeModule.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).orderModules hook. (by @​alexander-akait in #​20978)

  • Add a pure parser option for css/module and css/auto types matching postcss-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 @value identifiers as @import URLs and inside url() functions, e.g. @value path: "./other.css"; @&#8203;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 by experiments.futureDefaults). Uses Node.js's built-in module.stripTypeScriptTypes (Node.js >= 22.6 with the stable mode: "strip" API, including Node.js 26) to transform .ts, .cts, .mts, data:text/typescript, and data:application/typescript modules — 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.html flag that reserves the html module type for the first-class HTML entry-point support. (by @​aryanraj45 in #​20902)

  • Preserve defer / source import 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.extract for HTML modules and the matching output.htmlFilename / output.htmlChunkFilename filename templates (defaults derived from output.filename / output.chunkFilename with .js swapped for .html, mirroring the CSS pipeline). When extraction is on, the parsed and URL-rewritten HTML is emitted as a standalone .html output file alongside the module's JavaScript export. (by @​alexander-akait in #​20979)

  • Add "module-sync" to default conditionNames for resolver defaults to align with Node.js, which exposes the module-sync community condition for synchronously-loadable ESM. (by @​alexander-akait in #​20933)

Patch Changes
  • Fix CSS modules composes so composes: foo from "./self.module.css" from inside self.module.css no longer creates a duplicate module instance. Fix CSS modules composes parsing so local() and global() function wrappers are tracked per class name. Fix CSS modules composes: ... 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 by url()/src()/string in CSS changes its hashed filename. (by @​alexander-akait in #​20938)

  • Embed an inline sourceMappingURL data URI inside the CSS when the parser.exportType option are text, style, or css-style-sheet. Also merge @imported CSS at build time for text and css-style-sheet exportTypes 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 @charset at-rule when CSS modules use exportType: "text". (by @​alexander-akait in #​20912)

  • Resolve [hash]/[fullhash] placeholders in output.publicPath when generating url() references for experiments.css. (by @​alexander-akait in #​20879)

  • Fix HMR for concatenated CSS modules with style exportType 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 @value resolution when the same local name is imported from multiple modules. (by @​alexander-akait in #​20940)

  • Fix typeof ns.default / ns.default instanceof X on a static import defer * as ns from "./mod" for default-only and default-with-named external modules under optimization.concatenateModules. The concatenated-module rewrite was collapsing ns.default to the deferred-namespace proxy itself instead of routing through the optimized .a getter (which lazily evaluates the module and returns its default value), so typeof ns.default observed "object" (the proxy) rather than the type of the default. The dynamic exportsType already used .a correctly; default-only and default-with-named now match. (by @​alexander-akait in #​20910)

  • Make import defer * as ns more spec-compliant: ns.x = value no 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__.o runtime helpers from library: { 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-free SequenceExpression, e.g. import((1, 0, "./mod.js")) is now treated the same as import("./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 across ObjectExpression properties, and detect PURE comments inside TemplateLiteral interpolations. (by @​alexander-akait in #​20723)

  • Reject new import.defer(...) and new import.source(...) as a parse-time SyntaxError, matching the spec — ImportCall is a CallExpression and is not a valid operand of new. Parenthesized forms (new (import.defer(...))) remain valid and continue to throw TypeError at 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.prefetch runtime created Promise.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's require(esm) "module.exports" named-export convention. When CommonJS require() 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 on module.exports = …. The unwrap applies to plain require(), require().foo, calls (require()(…)), destructuring, and to CJS wrappers like module.exports = require(esm) / exports.x = require(esm). (by @​alexander-akait in #​20981)

  • Remove outdated @types/eslint-scope package 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 where a does export * from "./b"; export * from "./c"; and b does export { foo } from "./a"; while c provides the actual foo binding, webpack hoisted foo from b into a's namespace without per-name cycle detection — emitting a getter chain (a.foob.fooa.foo) that threw "Maximum call stack size exceeded" at runtime. The TC39 ResolveExport algorithm 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 using declaration initializers when the inner graph optimization is enabled. (by @​hai-x in #​20906)

  • Fixed typescript types. (by @​alexander-akait in #​20880)

  • Bump webpack-sources to ^3.4.1 and feed asset bytes into hashes via the new Source.prototype.buffers() API. For large ConcatSource/ReplaceSource outputs this avoids the intermediate Buffer.concat that source.buffer() performs, removing a peak-memory spike equal to the source's total size on each hashed asset (AssetGenerator.getFullContentHash, CssIcssExportDependency content hashing, and RealContentHashPlugin). A small benchmark on a 64 MiB ConcatSource shows ~64 MiB lower peak external memory and ~45% faster hashing. (by @​alexander-akait in #​20897)

v5.106.2

Compare 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, JsonGenerator JSONParse, WebAssemblyGenerator mangleImports). (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-types to mime-db. (by @​alexander-akait in #​20812)

  • Handle @charset at-rules in CSS modules. (by @​alexander-akait in #​20831)

  • Marked all experimental options in types. (by @​alexander-akait in #​20814)

v5.106.1

Compare Source

Patch Changes
  • Fix two ES5-environment regressions in the anonymous default export .name fix-up: the generated code referenced an undeclared __WEBPACK_DEFAULT_EXPORT__ binding causing ReferenceError, and used Reflect.defineProperty which is not available in pre-ES2015 runtimes. The fix-up now references the real assignment target and uses Object.defineProperty / Object.getOwnPropertyDescriptor. (by @​xiaoxiaojx in #​20796)

  • Prevent !important from 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.0

Compare 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 context option support for VirtualUrlPlugin (by @​xiaoxiaojx in #​20449)

    • The context for the virtual module. A string path. Defaults to 'auto', which will try to resolve the context from the module id.
    • Support custom context path for resolving relative imports in virtual modules
    • Add examples demonstrating context usage and filename customization
  • Generate different CssModule instances for different exportType values. (by @​xiaoxiaojx in #​20590)

  • Added the localIdentHashFunction option to configure the hash function to be used for hashing. (by @​alexander-akait in #​20694)
    Additionally, the localIdentName option can now be a function.

  • Added support for destructuring assignment require in cjs, allowing for tree shaking. (by @​ahabhgk in #​20548)

  • Added the validate option to enable/disable validation in webpack/plugins/loaders, also implemented API to make it inside plugins. (by @​xiaoxiaojx in #​20275)

  • Added source support 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 deprecate flag in schema for better TypeScript support to show which options are already deprecated by the configuration (by @​bjohansebas in #​20432)

  • Set .name to "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.meta as 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 ensure import.meta === import.meta identity. In preserve-unknown mode (ESM output), the hoisted object merges runtime import.meta properties via Object.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 with compiler.context, producing a concatenated path like C:\cwd\C:\project. Now absolute-path contexts are used directly.

  • All deprecated methods and options now have @deprecated flag in types. (by @​alexander-akait in #​20707)

  • Fix CompatibilityPlugin to 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)


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 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 these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot force-pushed the renovate/webpack-5.x branch 6 times, most recently from 89a9385 to 5e346a5 Compare May 13, 2026 03:50
@renovate renovate Bot force-pushed the renovate/webpack-5.x branch 3 times, most recently from 7eaf196 to 893e375 Compare May 18, 2026 16:35
@renovate renovate Bot force-pushed the renovate/webpack-5.x branch from 893e375 to 12ed084 Compare May 21, 2026 10:13
@renovate renovate Bot changed the title chore(deps): update dependency webpack to ^5.106.2 chore(deps): update dependency webpack to ^5.107.0 May 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants