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)- 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
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, thelocalIdentNameoption 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)