fix(deps): update dependency webpack to v5
This MR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| webpack | ^4.42.0 -> ^5.0.0 |
Release Notes
webpack/webpack (webpack)
v5.103.0
Features
- Added
DotenvPluginand top leveldotenvoption to enable this plugin - Added
WebpackManifestPlugin - Added support the
ignoreListoption in devtool plugins - Allow to use custom javascript parse function
- Added
import.meta.envsupport for environment variables - Added support for
import.meta.dirnameandimport.meta.filename - Added support
import.defer()for statistical path - Handle import.meta.main
- Added suport to setup named exports for JSON modules and disable usage named export for
import file from "./file.json" with { type: "json" } - Added support
__dirname/__filename/import.meta.dirname/import.meta.filenamefor universal target - [CSS] Added the
exportTypeoption withlink(by default), "text" andcss-style-sheetvalues - [CSS] Added support for
composesproperties
Fixes
- The
dependOnchunk must be loaded before the common chunk - Return to namespace import when the external request includes a specific export
- No runtime extra runtime code for module libraries
- Delay HMR accept dependencies to preserve import attributes
- Properly handle external presets for universal target
- Fixed incorrect identifier of import binding for module externals
- Fixed when defer import and dynamic default export mixed
- Reduce generated output when
globalThissupported - Fixed loading async modules in defer import
- Reexport module for default import when no used exports for systemjs library
- Rename HarmonyExportDependencyParserPlugin exported id to CompatibilityPlugin tagged id
- Handle
__dirnameand__filenamefor ES modules - Rename single nested
__webpack_export__and__webpack_require__in already bundled code - [Types] webpack function type
- [Types] NormalModule type
- [Types] Multi compiler configuration type
- [Types] Fixed regression in custom
hashDigesttype - [CSS] No extra runtime for initial chunk
- [CSS] Fixed a lot of CSS modules bugs
v5.102.1
Fixes
- Supported
extendswithenvforbrowserslist - Supported
JSONPfragment format for web workers. - Fixed dynamic import support in workers using
browserslist. - Fixed default defer import mangling.
- Fixed default import of
commonjsexternals forSystemJSformat. - Fixed context modules to the same file with different import attributes.
- Fixed typescript types.
- Improved
import.metawarning messages to be more clear when used directly. - [CSS] Fixed CC_UPPER_U parsing (E -> U) in tokenizer.
v5.102.0
Features
- Added static analyze for dynamic imports
- Added support for
import file from "./file.ext" with { type: "bytes" }to get the content asUint8Array(look at example) - Added support for
import file from "./file.ext" with { type: "text" }to get the content as text (look at example) - Added the
snapshot.contextModuleto configure snapshots options for context modules - Added the
extractSourceMapoption to implement the capabilities of loading source maps by comment, you don't needsource-map-loader(look at example) - The
topLevelAwaitexperiment is now stable (you can removeexperiments.topLevelAwaitfrom yourwebpack.config.js) - The
layersexperiment is now stable (you can removeexperiments.layersfrom yourwebpack.config.js) - Added function matcher support in rule options
Fixes
- Fixed conflicts caused by multiple concatenate modules
- Ignore import failure during HMR update with ES modules output
- Keep render module order consistent
- Prevent inlining modules that have
thisexports - Removed unused
timeoutattribute of script tag - Supported UMD chunk format to work in web workers
- Improved CommonJs bundle to ES module library
- Use
es-lexerformjsfiles for build dependencies - Fixed support
__non_webpack_require__for ES modules - Properly handle external modules for CSS
- AssetsByChunkName included assets from
chunk.auxiliaryFiles - Use
createRequireonly when output is ES module and target is node - Typescript types
Performance Improvements
- Avoid extra calls for snapshot
- A avoid extra jobs for build dependencies
- Move import attributes to own dependencies
v5.101.3
Fixes
- Fixed resolve execution order issue from extra await in async modules
- Avoid empty block for unused statement
- Collect only specific expressions for destructuring assignment
v5.101.2
Fixes
- Fixed syntax error when comment is on the last line
- Handle var declaration for
createRequire - Distinguish free variable and tagged variable
v5.101.1
Fixes
- Filter deleted assets in
processAdditionalAssetshook - HMR failure in defer module
- Emit assets even if invalidation occurs again
- Export types for serialization and deserialization in plugins and export the
ModuleFactoryclass - Fixed the failure export of internal function for ES module chunk format
- Fixed
GetChunkFilenamefailure caused bydependOnentry - Fixed the import of missing dependency chunks
- Fixed when entry chunk depends on the runtime chunk hash
- Fixed
module.exportsbundle to ESM library - Adjusted the time of adding a group depending on the fragment of execution time
- Fixed circle dependencies when require
RawModuleand condition ofisDeferred - Tree-shakable module library should align preconditions of
allowInlineStartup
v5.101.0
Fixes
- Fixed concatenate optimization for ESM that caused undefined export
- Respect the
output.environment.nodePrefixForCoreModulesoption everywhere - Respect the
output.importMetaNameoption everywhere - Fixed await async dependencies when accepting them during HMR
- Better typescript types
Features
- Added colors helpers for CLI
- Enable tree-shaking for ESM external modules with named imports
- Added the
deferImportoption to parser options
Performance Improvements
- Fixed a regression in module concatenation after implementing deferred import support
- Fixed a potential performance issue in CleanPlugin
- Avoid extra
requirein some places
v5.100.2
Fixes
- Keep consistent CSS order
- Dependency without the source order attribute must keep their original index
- Keep module traversal consistent across reexport scenarios
Performance Improvements
- Extend
importPhasesPluginonly when enabledeferImport(#19689)
v5.100.1
Fixes
- Tree-shaking unused ignored modules
- [Types] Compatibility with old Node.js versions
v5.100.0
Fixes
- Fixed the case where an ES modules entry chunk depends on the runtime chunk hash
- Handle function exports in webpack module wrapper
- Ensure dependent chunks are imported before startup & fix duplicate export of 'default'
- Generate lose closing brace when exports are unprovided
- CleanPlugin doesn't unlink same file twice
- Fixed unexpected error codes from fs.unlink on Windows
- Typescript types
Features
- HMR support for ES modules output
- ES module output mode now fully supports
splitChunkswhen external variables and runtimeChunk are not set. - Added support
usingkeyword - Implemented tc39 Defer Module Evaluation (experiment)
- Support dynamic template literals expressions for
new URL(...) - Enable ES modules worker chunk loading for Node.js targets
- Improved support for destructing in DefinePlugin
- Added VirtualUrlPlugin to support
virtual:scheme
Performance Improvements
- Remove useless startup entrypoint runtime for ES modules output
- Cache
new URL(...)evaluate expression
v5.99.9
Fixes
- HMR might fail if there are new initial chunks
- Destructuring namespace import with default
- Destructuring namespace import with computed-property
- Generate valid code for es export generation for multiple module entries
- Fixed public path issue for ES modules
- Asset modules work when lazy compilation used
- Eliminate unused statements in certain scenarios
- Fixed regression with location and order of dependencies
- Fixed typescript types
v5.99.8
Fixes
- Fixed type error with latest
@types/node - Fixed typescript types
v5.99.7
Fixes
- Don't skip export generation for
defaultreexport (#19463) - Fixed module library export generation for reexport (#19459)
- Avoid module concatenation in child compilation for module library (#19457)
- Ensure HMR recover gracefully when CSS module with error
- Respect
causeof any errors anderrorsof AggregateError in stats output - Added missing
@types/json-schemain types
v5.99.6
Fixes
- Respect public path for ES modules
- Fixed generation of module for
modulelibrary when mixing commonjs and esm modules - Always apply
FlagDependencyExportsPluginfor libraries where it required - Faster logic for dead control flow
- Typescript types
v5.99.5
Fixes
- Control dead flow for labeled and blockless statements
v5.99.4
Fixes
- Fixed terminated state for
if/else
v5.99.3
Fixes
- Fixed dead control flow with deep nested
if/else
v5.99.2
Fixes
- Dead control flow for exotic cases
v5.99.1
Fixes
- Dead control flow for many cases
v5.99.0
Fixes
- Fixed a lot of types
- Fixed runtime error when using asset module as entrypoint and runtimeChunk
- JSON generator now preserves
__proto__property - Fixed when entry module isn't executed when targeting webworker with a runtime chunk
- Do not duplicate modules with import attributes and reexport
- The
moduleandmoduleESM libraries have been union and code generation has been improved - Use a valid output path for errored asset modules
- Remove BOM from JavaScript and CSS files when loader was not used
- Create export for externals for module/modern-module library
- Export unprovided variables for
commonjs-staticlibrary - Forward semicolons from
meta.webpackAST - Use
xxhash64forcache.hashAlgorithmwhenexperiments.futureDefaultsenabled - [CSS] Fixed profiling plugin for CSS
- [CSS] Avoid extra module.export output for CSS module
Features
- Add dead control flow check
- Handle
new Worker(import.meta.url)andnew Worker(new URL(import.meta.url))syntax - Added ability to generate custom error content for generators
Performance Improvements
- Fixed excessive calls of getAllReferences
- Optimize loc for monomorphic inline caching
Chores
- Switch on
stricttypes fortypescript
v5.98.0
Fixes
- Avoid the deprecation message #19062 by @alexander-akait
- Should not escape CSS local ident in JS #19060 by @JSerFeng
- MF parse range not compatible with Safari #19083 by @alexander-akait
- Preserve
filenameTemplatein new split chunk #19104 by @henryqdineen - Use module IDs for final render order #19184 by @dmichon-msft
- Strip
blob:protocol when public path isauto#19199 by @alexander-akait - Respect
output.charseteverywhere #19202 by @alexander-akait - Node async WASM loader generation #19210 by @ashi009
- Correct
BuildInfoandBuildMetatype definitions #19200 by @inottn
Performance Improvements
- Improve
FlagDependencyExportsPluginfor large JSON by depth #19058 by @hai-x - Optimize assign-depths #19193 by @dmichon-msft
- Use
startsWithfor matching instead of converting the string to a regex #19207 by @inottn
Chores
- Bump
nanoidfrom 3.3.7 to 3.3.8 #19063 by @dependabot - Fixed incorrect typecast in
DefaultStatsFactoryPlugin#19156 by @Andarist - Improved
readme.mdby adding video links for understanding webpack #19101 by @Vansh5632 - Typo fix #19205 by @hai-x
- Adopt the new webpack governance model #18804 by @ovflowd
Features
- Implement
/* webpackIgnore: true */forrequire.resolve#19201 by @alexander-akait
Continuous Integration
- CI fix #19196 by @alexander-akait
New Contributors
- @Andarist made their first contribution in https://github.com/webpack/webpack/pull/19156
- @Vansh5632 made their first contribution in https://github.com/webpack/webpack/pull/19101
- @ashi009 made their first contribution in https://github.com/webpack/webpack/pull/19210
- @ovflowd made their first contribution in https://github.com/webpack/webpack/pull/18804
Full Changelog: https://github.com/webpack/webpack/compare/v5.97.1...v5.98.0
v5.97.1
Bug Fixes
- Performance regression
- Sub define key should't be renamed when it's a defined variable
v5.97.0
Bug Fixes
- Don't crash with filesystem cache and unknown scheme
- Generate a valid code when
output.iifeistrueand output.library.type isumd - Fixed conflict variable name with concatenate modules and runtime code
- Merge duplicate chunks before
- Collisions in ESM library
- Use recursive search for versions of shared dependencies
- [WASM] Don't crash WebAssembly with Reference Types (sync and async)
- [WASM] Fixed wasm loading for sync and async webassembly
-
[CSS] Don't add
[uniqueName]tolocalIdentNamewhen it is empty - [CSS] Parsing strings on Windows
- [CSS] Fixed CSS local escaping
New Features
- Added support for injecting debug IDs
- Export the
MergeDuplicateChunksplugin - Added universal loading for JS chunks and JS worker chunks (only ES modules)
- [WASM] Added universal loading for WebAssembly chunks (only for async WebAssembly)
-
[CSS] Allow initial CSS chunks to be placed anywhere - the
output.cssHeadDataCompressionoption was deleted - [CSS] Added universal loading for CSS chunks
-
[CSS] Parse ICSS
@valueat-rules in CSS modules -
[CSS] Parse ICSS
:importrules in CSS modules -
[CSS] Added the
urlandimportoptions for CSS - [CSS] Allow to import custom properties in CSS modules
Performance
- Faster Queue implementation, also fixed queue iterator state in dequeue method to ensure correct behavior after item removal
v5.96.1
Bug Fixes
-
[Types] Add
@types/eslint-scopeto dependencieS -
[Types] Fixed regression in
validate
v5.96.0
Bug Fixes
- Fixed Module Federation should track all referenced chunks
- Handle Data URI without base64 word
- HotUpdateChunk have correct runtime when modified with new runtime
- Order of chunks ids in generated chunk code
- No extra Javascript chunks when using asset module as an entrypoint
- Use optimistically logic for
output.environment.dynamicImportto determine chunk format when no browserslist or target - Collision with global variables for
optimization.avoidEntryIife - Avoid through variables in inlined module
- Allow chunk template strings in
output.devtoolNamespace - No extra runtime for get javascript/css chunk filename
- No extra runtime for prefetch and preload in JS runtime when it was unsed in CSS
- Avoid cache invalidation using ProgressPlugin
- Increase parallelism when using
importModuleon the execution stage - Correctly parsing string in
exportandimport - Typescript types
-
[CSS]
css/autoconsiders a module depending on its filename ascss(pure CSS) orcss/local, before it wascss/globalandcss/local - [CSS] Always interpolate classes even if they are not involved in export
- [CSS] No extra runtime in Javascript runtime chunks for asset modules used in CSS
- [CSS] No extra runtime in Javascript runtime chunks for external asset modules used in CSS
-
[CSS] No extra runtime for the
nodetarget -
[CSS] Fixed
url()s and@importparsing - [CSS] Fixed - emit a warning on broken :local and :global
New Features
- Export CSS and ESM runtime modules
- Single Runtime Chunk and Federation eager module hoisting
-
[CSS] Support
/* webpackIgnore: true */for CSS files -
[CSS] Support
src()support - [CSS] CSS nesting in CSS modules
v5.95.0
Bug Fixes
- Fixed hanging when attempting to read a symlink-like file that it can't read
- Handle
defaultfor import context element dependency - Merge duplicate chunks call after split chunks
- Generate correctly code for dynamically importing the same file twice and destructuring
- Use content hash as [base] and [name] for extracted DataURI's
- Distinguish
moduleandimportinmodule-importfor externalsimport's - [Types] Make
EnvironmentPlugindefault values types less strict - [Types] Typescript 5.6 compatibility
New Features
- Add new
optimization.avoidEntryIifeoption (trueby default for theproductionmode) - Pass output.hash* options to loader context
Performance
- Avoid unneeded re-visit in build chunk graph
v5.94.0
Bug Fixes
- Added runtime condition for harmony reexport checked
- Handle properly
data/http/httpsprotocols in source maps - Make
bigintoptimistic when browserslist not found - Move @types/eslint-scope to dev deps
- Related in asset stats is now always an array when no related found
- Handle ASI for export declarations
- Mangle destruction incorrect with export named default properly
- Fixed unexpected asi generation with sequence expression
- Fixed a lot of types
New Features
- Added new external type "module-import"
- Support
webpackIgnorefornew URL()construction - [CSS]
@importpathinfo support
Security
- Fixed DOM clobbering in auto public path
v5.93.0
Bug Fixes
- Generate correct relative path to runtime chunks
- Makes
DefinePluginquieter under default log level - Fixed mangle destructuring default in namespace import
- Fixed consumption of eager shared modules for module federation
- Strip slash for pretty regexp
- Calculate correct contenthash for CSS generator options
New Features
- Added the
binarygenerator option for asset modules to explicitly keep source maps produced by loaders - Added the
modern-modulelibrary value for tree shakable output - Added the
overrideStrictoption to override strict or non-strict mode for javascript modules
v5.92.1
Bug Fixes
- Doesn't crash with an error when the css experiment is enabled and contenthash is used
v5.92.0
Bug Fixes
- Correct tidle range's comutation for module federation
- Consider runtime for pure expression dependency update hash
- Return value in the
subtractRuntimefunction for runtime logic - Fixed failed to resolve promise when eager import a dynamic cjs
- Avoid generation extra code for external modules when remapping is not required
- The
css/globaltype now handles the exports name - Avoid hashing for
@keyframeand@propertyat-rules incss/globaltype - Fixed mangle with destructuring for JSON modules
- The
stats.hasWarnings()method now respects theignoreWarningsoption - Fixed
ArrayQueueiterator - Correct behavior of
__webpack_exports_info__.a.b.canMangle - Changed to the correct plugin name for the
CommonJsChunkFormatPluginplugin - Set the
chunkLoadingoption to theimportwhen environment is unknown and output is module - Fixed when runtimeChunk has no exports when
modulechunkFormat used - [CSS] Fixed parsing minimized CSS import
- [CSS] URLs in CSS files now have correct public path
- [CSS] The
cssmodule type should not allow parser to switch mode - [Types] Improved context module types
New Features
- Added platform target properties to compiler
- Improved multi compiler cache location and validating it
- Support
import attributesspec (withkeyword) - Support
node:prefix for Node.js core modules in runtime code - Support prefetch/preload for module chunk format
- Support "..." in the
importsFieldsoption for resolver - Root module is less prone to be wrapped in IIFE
- Export
InitFragmentclass for plugins - Export
compileBooleanMatcherutil for plugins - Export
InputFileSystemandOutputFileSystemtypes - [CSS] Support the
esModulegenerator option for CSS modules - [CSS] Support CSS when chunk format is module
v5.91.0
Bug Fixes
- Deserializer for ignored modules doesn't crash
- Allow the
unsafeCacheoption to be a proxy object - Normalize the
snapshot.unmanagedPathsoption - Fixed
fstypes - Fixed resolve's plugins types
- Fixed wrongly calculate postOrderIndex
- Fixed watching types
- Output import attrbiutes/import assertions for external JS imports
- Throw an error when DllPlugin needs to generate multiple manifest files, but the path is the same
- [CSS] Output
layer/supports/mediafor external CSS imports
New Features
- Allow to customize the stage of BannerPlugin
- [CSS] Support CSS exports convention
- [CSS] support CSS local ident name
- [CSS] Support
__webpack_nonce__for CSS chunks - [CSS] Support
fetchPriorityfor CSS chunks - [CSS] Allow to use LZW to compress css head meta (enabled in the
productionmode by default) - [CSS] Support prefetch/preload for CSS chunks
v5.90.3
Bug Fixes
- don't mangle when destructuring a reexport
- types for
Stats.toJson()andStats.toString() - many internal types
- [CSS] clean up export css local vars
Perf
- simplify and optimize chunk graph creation
v5.90.2
Bug Fixes
- use
Math.imulinfnv1a32to avoid loss of precision, directly hash UTF16 values - the
setStatus()of the HMR module should not return an array, which may cause infinite recursion -
__webpack_exports_info__.xxx.canMangleshouldn't always same as default - mangle export with destructuring
- use new runtime to reconsider skipped connections
activeState - make dynamic import optional in
try/catch - improve auto publicPath detection
Dependencies & Maintenance
- improve CI setup and include Node.js@21
v5.90.1
Bug Fixes
- set
unmanagedPathsin defaults - correct
preOrderIndexandpostOrderIndex - add fallback for MIME mismatch error in async wasm loading
- browsers versions of ECMA features
Performance
- optimize
compareStringsNumeric - optimize
numberHashusing 32-bit FNV1a for small ranges, 64-bit for larger - reuse VM context across webpack magic comments
v5.90.0
Bug Fixes
- Fixed inner graph for classes
- Optimized
RemoveParentModulesPluginvia bigint arithmetic - Fixed worklet detection in production mode
- Fixed an error for cyclic importModule
- Fixed types for
ServerandDirent - Added the
fetchPriorityto hmr runtime'sensureChunkfunction - Don't warn about dynamic import for build dependencies
- External module generation respects the
output.environment.arrowFunctionoption - Fixed consumimng shared runtime module logic
- Fixed a runtime logic of multiple chunks
- Fixed destructing assignment of dynamic import json file
- Passing errors array for a module hash
- Added
/*#__PURE__*/to generatedJSON.parse() - Generated a library manifest after clean plugin
- Fixed non
amdexternals andamdlibrary - Fixed a bug in
SideEffectsFlagPluginwith namespace re-exports - Fixed an error message for condition
or - The
strictModuleErrorHandlingis now working - Clean up child compilation chunk graph to avoid memory leak
- [CSS] - Fixed CSS import prefer relative resolution
- [CSS] - Fixed CSS runtime chunk loading error message
New Features
- Allow to set
falsefor dev server inwebpack.config.js - Added a warning for async external when not supported
- Added a warning for async module when not supported
- Added the
node-moduleoption for thenode.__filename/__dirnameand enable it by default for ESM target - Added the
snapshot.unmanagedPathsoption - Exposed the
MultiCompilerOptionstype - [CSS] - Added CSS parser options to enable/disable named exports
- [CSS] - Moved CSS the
exportsOnlyoption to CSS generator options
Dependencies & Maintenance
- use node.js LTS version for lint
- bump actions/cache from 3 to 4
- bump prettier from 3.2.1 to 3.2.3
- bump assemblyscript
- bump actions/checkout from 3 to 4
Full Changelog: https://github.com/webpack/webpack/compare/v5.89.0...v5.90.0
v5.89.0
New Features
- Make CommonJS import preserve chained expressions by @bworline in #17718
Dependencies & Maintenance
- chore(deps-dev): bump @types/node from 20.3.1 to 20.4.8 by @dependabot in #17568
- docs: add example for stats detailed output by @ersachin3112 in #17420
- docs: add example for stats normal output by @ersachin3112 in #17426
- chore(deps-dev): bump core-js from 3.31.0 to 3.32.0 by @dependabot in #17539
- chore(deps-dev): bump pretty-format from 29.5.0 to 29.6.2 by @dependabot in #17536
- chore(deps-dev): bump @types/node from 20.4.8 to 20.4.9 by @dependabot in #17583
- chore(deps-dev): bump less from 4.1.3 to 4.2.0 by @dependabot in #17580
- chore(deps): bump semver from 5.7.1 to 5.7.2 by @dependabot in #17483
- chore(deps-dev): bump simple-git from 3.19.0 to 3.19.1 by @dependabot in #17427
- chore(deps-dev): bump @types/node from 20.4.9 to 20.6.0 by @dependabot in #17666
Full Changelog: https://github.com/webpack/webpack/compare/v5.88.2...v5.89.0
v5.88.2
Bug Fixes
- Fixed a bug where unused identifiers should retain names when using css modules by @burhanuday in #17444
Full Changelog: https://github.com/webpack/webpack/compare/v5.88.1...v5.88.2
v5.88.1
Developer Experience
- Significantly improve TypeScript coverage for Library Plugins by @alexander-akait in #17414
Full Changelog: https://github.com/webpack/webpack/compare/v5.88.0...v5.88.1
v5.88.0
New Features
- [CSS] - Use
css/autoas the default css mode by @burhanuday in #17399
Bug Fixes
- Fix bugs related to require.context and layer by @alexander-akait in #17388
- Fix bug in runtime for CSS loading by @alexander-akait in #17400
- Correct indirect call for tagged template expressions using correct this context by @alexander-akait in #17397
- Update environment support for KaiOS browser by @steverep in #17395
- Fix async module runtime code for running top-level-await by @ahabhgk in #17393
Developer Experience
- Add example for stats minimal output by @ersachin3112 in #17406
- Significantly improve type coverage for Dependency, Runtime, Template classes by @alexander-akait in #17394
Dependencies & Maintenance
- Bump browserslist from 4.21.8 to 4.21.9 by @dependabot in #17389
- Bump acorn from 8.8.2 to 8.9.0 by @dependabot in #17402
- Bump eslint from 8.42.0 to 8.43.0 by @dependabot in #17401
- Bump eslint-plugin-jest from 27.2.1 to 27.2.2 by @dependabot in #17407
New Contributors
- @steverep made their first contribution in #17395
Full Changelog: https://github.com/webpack/webpack/compare/v5.87.0...v5.88.0
v5.87.0
New Features
- Implement
fetchPriorityfeature as parser option and magic comment by @alexander-akait in #17249 - [CSS] - Introduce 'css/auto' as a css module type by @ahabhgk in #16577
- [CSS] - Style-specific fields now automatically resolve in package.json by @burhanuday in #17346
- webpack configuration API now accepts "falsy values" loaders and plugins by @alexander-akait in #17339
Bug Fixes
- Fix codecov badge in readme by @burhanuday in #17353
Developer Experience
- Add link to svelte loader for webpack by @burhanuday in #17369
- Increase parser API types in internal plugins across dependency plugins @alexander-akait in #17365
Dependencies & Maintenance
- Bump memfs from 3.5.2 to 3.5.3 by @dependabot in #17347
- Bump webpack-cli from 5.1.3 to 5.1.4 by @dependabot in #17349
- Bump es-module-lexer from 1.2.1 to 1.3.0 by @dependabot in #17362
- Bump @types/node from 20.2.5 to 20.3.0 by @dependabot in #17361
- Bump core-js from 3.30.2 to 3.31.0 by @dependabot in #17360
- Bump browserslist from 4.21.6 to 4.21.8 by @dependabot in #17367
- Bump @types/node from 20.3.0 to 20.3.1 by @dependabot in #17366
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.0
New Features
- Improved cache size performance via better handling of serialization for errors and bigints by @alexander-akait in #17282
- Introduce an export default handler function option for
ProgressPluginby @alexander-akait in #17312 - Support passing
RegExptosplitChunks.chunksby @hyf0 in #17332
Bug Fixes
- Fix layer capabilities for
ContextModuletypes by @huozhi in #17310 - Fix compatibility of
__non_webpack_require__with ES modules by @alexander-akait in #17308 - Improve type coverage
Chunk,ChunkGroup, and other plugins by @alexander-akait in #1731 - Do not add
jsextension for eval source maps when extension is not resolvable by @alexander-akait in #17331
Developer Experience
- Improve type coverage for Json Module type and lazy load json-assertions package by @alexander-akait in #17301
Dependencies & Maintenance
- Bump memfs from 3.5.1 to 3.5.2 by @dependabot in #17315
- Bump webpack-cli from 5.1.1 to 5.1.3 by @dependabot in #17314
- Bump eslint from 8.41.0 to 8.42.0 by @dependabot in #17313
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.85.1...v5.86.0
v5.85.1
Bug Fixes
- Fix bug in handling barrel imports (#17305) by @bworline in #17307 - NOTE: An internal API
BasicEvaluatedExpression.getMemberRangeStartshas been changed toBasicEvaluatedExpression.getMemberRanges, please see type definition changes and the pull request for more information.
Dependencies & Maintenance
- Bump @types/jest from 29.5.1 to 29.5.2 by @dependabot in #17297
Full Changelog: https://github.com/webpack/webpack/compare/v5.85.0...v5.85.1
v5.85.0
New Features
- Add
readonlycache mode by @vankop in #15470 - Normalize property accessors for esm namespaces and chained member/call expressions by @bworline in #17203
- Support
environmentin loader context by @alexander-akait in #17281 - Introduce a new syntax for
addModule()support in worklets -*context.audioWorklet.addModule()by @alexander-akait in #17212
Bug Fixes
- Fix type regression with unknown module type strings by @alexander-akait in #17266
Developer Experience
- Use global runtime constants for webpack exports by @burhanuday in #17270
- Add strict mode type coverage for WASM and Runtime code by @alexander-akait in #17267
- Add strict mode type coverage for runtime modules and runtime plugins by @alexander-akait in #17261
- Add types for JSON & Asset Modules including their interfacing plugins by @alexander-akait in #17262
- Add type coverage for Module subclasses and plugins by @alexander-akait in #17272
Dependencies & Maintenance
- Use GitHub Discussions instead of Gitter in issue templates by @snitin315 in #17293
- Bump @types/node from 20.2.3 to 20.2.4 by @dependabot in #17269
- Bump browserslist from 4.21.5 to 4.21.6 by @dependabot in #17275
- Bump @types/node from 20.2.4 to 20.2.5 by @dependabot in #17276
- Bump @babel/core from 7.21.8 to 7.22.1 by @dependabot in #17278
Full Changelog: https://github.com/webpack/webpack/compare/v5.84.1...v5.85.0
v5.84.1
Bug Fixes
- Fix regression in inner graph for reserved identifiers by @alexander-akait in #17265
Dependencies & Maintenance
- Bump @types/jest from 29.5.0 to 29.5.1 by @dependabot in #17027
- Bump simple-git from 3.18.0 to 3.19.0 by @dependabot in #17263
Full Changelog: https://github.com/webpack/webpack/compare/v5.84.0...v5.84.1
v5.84.0
New Features
- SourceMapDevToolPlugin now supports
appendoption as a function by @snitin315 in #17252
Bug Fixes
- Fix multiple bugs referencing class names when shadowed by import name in properties and methods by @alexander-akait in #17233
- Allow DefinePlugin shorthand property by @shamoilarsi in #17231
- [CSS] - Fix edge cases in parsing
@importby @alexander-akait in #17229
Developer Experience
- Increase type coverage for serialization classes by @alexander-akait in #17243
- Increase type coverage for
JavascriptParserandModuleDependencysubclasses by @alexander-akait in #17236 - Increase type coverage to
strict-mode quality for Configuration/Normalization objects by @alexander-akait in #17247 - Refactor duplicate strings by replacing them with constant for webpack_require instead of string literal by @burhanuday in #17228
- Add test case for
with { type: "json" }by @alexander-akait in #17230 - Add test case for destructuring by @alexander-akait in #17248
Dependencies & Maintenance
- Add GitHub discussions badge in README by @snitin315 in #17251
- Bump enhanced-resolve to 5.14.1 by @TheLarkInn in #17257
- Bump @types/node from 20.1.7 to 20.2.0 by @dependabot in #17219
- Bump @types/node from 20.2.0 to 20.2.1 by @dependabot in #17226
- Bump webpack-cli from 5.1.0 to 5.1.1 by @dependabot in #17164
- Bump eslint from 8.39.0 to 8.40.0 by @dependabot in #17148
- Bump @babel/core from 7.21.4 to 7.21.8 by @dependabot in #17126
- Bump @types/node from 20.2.1 to 20.2.3 by @dependabot in #17238
- Bump eslint from 8.40.0 to 8.41.0 by @dependabot in #17237
New Contributors
- @shamoilarsi made their first contribution in #17231
Full Changelog: https://github.com/webpack/webpack/compare/v5.83.1...v5.84.0
v5.83.1
Bug Fixes
- Fix regression in import/export normailization effecting mini-css-extract-plugin by @alexander-akait in #17214
Full Changelog: https://github.com/webpack/webpack/compare/v5.83.0...v5.83.1
v5.83.0
New Features
- Normalize property access for imports and exports by @bworline in #17137
- Top Level Await is now enabled by default by @burhanuday in #17192
Bug Fixes
- Correct
chunkgroup.groupsIterablereturn type by @TheLarkInn in #17196 - Fix bug in Rule Matcher type by @alexander-akait in #17207
- Fixed apply event callback and optimizing callback event type by @nuintun in #16094
- Fix types in hot module replacement APIs by @alexander-akait in #17193
Developer Experience
- Expose
ChunkGroupto type definitions by @TheLarkInn in #17201 - Add
NormalModuleFactory'sResolveDatatype to public interface by @TheLarkInn in #17195 - Document
compilation.afterChunkshook by @TheLarkInn in #17202
Dependencies & Maintenance
- Bump @webassemblyjs/wasm-edit from 1.11.5 to 1.11.6 by @dependabot in #17168
- Bump wast-loader from 1.11.5 to 1.11.6 by @dependabot in #17163
- Bump yarn-deduplicate from 6.0.1 to 6.0.2 by @dependabot in #17184
- Fix command by @alexander-akait in #17154
- Bump @types/node from 18.16.3 to 20.1.7 by @dependabot in #17205
New Contributors
- @bworline made their first contribution in #17137
- @nuintun made their first contribution in #16094
Full Changelog: https://github.com/webpack/webpack/compare/v5.82.1...v5.83.0
v5.82.1
Bug Fixes
- [CSS] - Support nesting in CSS modules and bug fixes by @alexander-akait in #17133
- [CSS] - Fix crash with
importModulewhen CSS enabled by @alexander-akait in #17140 - Fix bug where
output.hashFunctionwas failing to generate debug hash by @ahabhgk in #16950 - Reduce the amount of generated code for chunk loading by @lvivski in #17151
- Use module preload for ESM module output by @alexander-akait in #17143
Developer Experience
- Improve module type strictness for Module.prototype.type expand ModuleTypeConstants by @TheLarkInn in #17136
Dependencies & Maintenance
- Update package.json description by @JeraldVin in #17145
- Bump webpack-cli from 5.0.2 to 5.1.0 by @dependabot in #17146
- Bump core-js from 3.30.1 to 3.30.2 by @dependabot in #17149
- Bump enhanced-resolve to v5.14.0 by @snitin315 in #17160
New Contributors
- @JeraldVin made their first contribution in #17145
Full Changelog: https://github.com/webpack/webpack/compare/v5.82.0...v5.82.1
v5.82.0
New Features
- [CSS] - Add URL dependencies support to consume shared module via module federation by @snitin315 in #16945
- Allow webpack-cli to be in ESM by @alexander-akait in #17088
- Allow specifying "onPolicyCreationFailure" mode for trusted types by @Zlatkovsky in #16990
Bug Fixes
- [CSS] - Respect
media/supports/layerfrom parent CSS module by @alexander-akait in #17115 - [CSS] - Add warning & support for any @import rules must precede all other rules by @alexander-akait in #17118
- [CSS] - Support handling
#hashURL as external (similar to Parcel) by @alexander-akait in #17116 - Optimize numberHash.js performance by removing inner loops by @alexkuz in #17074
- Improve template string comparison algorithm by @An0nie in #17079
Tests & Contributor Experience
- [CSS] - Increase imports external test coverage by @alexander-akait in #17089
- Improve MR reliability via ignoring unstable coverage by @alexander-akait in #17106
- Update webpack types to support extends property in webpack (for webpack-cli) by @burhanuday in #17113
Developer Experience
- Increase type coverage and documentation for
StringXorclass. by @TheLarkInn in #17070 - Increase type coverage & docs for
numberHashby @TheLarkInn in #17072 - Increase type coverage & docs for
JavascriptParserby @TheLarkInn in #17094 - Increase type coverage & docs for
BasicEvaluatedExpressionby @TheLarkInn in #17096 - Increase type coverage for CSS module type by @alexander-akait in #17097
- Increase type coverage for JSON module type by @alexander-akait in #17095
- Increase type coverage & docs for multiple utility classes by @alexander-akait in #17107
Dependencies & Maintenance
- chore(deps-dev): bump lint-staged from 13.2.1 to 13.2.2 by @dependabot in #17075
- chore(deps-dev): bump eslint from 8.38.0 to 8.39.0 by @dependabot in #17052
- chore(deps-dev): bump assemblyscript from 0.27.3 to 0.27.4 by @dependabot in #17064
- chore(deps-dev): bump assemblyscript from 0.27.4 to 0.27.5 by @dependabot in #17109
- chore(deps-dev): bump @types/node from 18.16.2 to 18.16.3 by @dependabot in #17112
- chore(deps-dev): bump @types/node from 18.15.13 to 18.16.2 by @dependabot in #17084
- chore(deps-dev): bump webpack-cli from 5.0.1 to 5.0.2 by @dependabot in #17054
- chore(deps-dev): bump date-fns from 2.29.3 to 2.30.0 by @dependabot in #17111
New Contributors
- @An0nie made their first contribution in #17079
- @burhanuday made their first contribution in #17113
- @Zlatkovsky made their first contribution in #16990
Full Changelog: https://github.com/webpack/webpack/compare/v5.81.0...v5.82.0
v5.81.0
New Features
- [CSS] - Increased CSS import support and new hooks included for CSS module creation by @alexander-akait in #17057
- Logging now added to DefinePlugin by @alexander-akait in #17048
- New
ignoreBrowserWarningsoption to ignore browser console warnings in ModuleFederation by @indeediansbrett in #16388
Bug Fixes
- [CSS] - Fix issue where vendor prefixed keyframes and animation was not supported in CSS modules by @alexander-akait in #16975
- Fix bug where AST was not properly handled by @quanru in #17032
- Fix automatic publicPath detection logic by @alexander-akait in #17047
Tests & Contributor Experience
- Rename
providetogetOrInsertin MapHelpers and document it better by @TheLarkInn in #17060 - Increase test reliability for DefinePlugin @alexander-akait in #17062
- Add additional CI Pipeline to test main branches of first-party webpack dependencies by @alexander-akait in #17020
- Refactor tests to no longer use deprecated or legacy dependencies and APIs by @alexander-akait in #17033
Developer Experience
- Increase type coverage/documentation for ModuleFilenameHelpers by @TheLarkInn in #17045
- Increase type coverage/documentation for CommonJsExportsParserPlugin by @TheLarkInn in #17046
- Increase type coverage/documentation for binarySearchBounds.js by @TheLarkInn in #17058
- Export MemoryCacheOptions types by @romulof in #17055
Dependencies & Maintenance
- Add NodeJS v20 to CI Matrix by @alexander-akait in #17019
- Update Typescript to v5 by @alexander-akait in #16957
- Bump @types/estree from 1.0.0 to 1.0.1 by @dependabot in #17026
- Bump @types/node from 18.15.11 to 18.15.13 by @dependabot in #17038
- Bump assemblyscript from 0.27.2 to 0.27.3 by @dependabot in #17051
- Bump memfs from 3.5.0 to 3.5.1 by @dependabot in #17039
- Bump prettier from 2.8.7 to 2.8.8 by @dependabot in #17050
- Bump simple-git from 3.17.0 to 3.18.0 by @dependabot in #17066
New Contributors
- @quanru made their first contribution in #17032
- @romulof made their first contribution in #17055
- @indeediansbrett made their first contribution in #16388
Full Changelog: https://github.com/webpack/webpack/compare/v5.80.0...v5.81.0
v5.80.0
New Features
- Support destructuring assignment in
import.metaby @vankop in #16996 - Support treeshaking for destructuring assignment with
AwaitExpressionby @vankop in #16995 - Introduce
errorsSpace,warningsSpacefor more readable traces in stats by @vankop in #15450
Bug Fixes
- [CSS] - Fix runtime generation bug for merged CSS Chunks by @janlent1 in #16903
- [CSS] - Properly handle
url()/src()/image-set()/image()by @alexander-akait in #16978 - ES Module webpack loaders are now supported @stefanprobst in #15198
- Fix spelling error for
statement.finalizerin parser by @xiaoboost in #17016 - Fix non-deterministic
moduleIdassignment due to encounteringNaNin sort function by @scameron in #16933 - [enhanced-resolve]: Support wildcards pattern with common suffix in package maps & imports/exports field by @bvanjoi in webpack/enhanced-resolve#353
Tests & Contributor Experience
- [CSS] - Added test case for
@supportsfield by @alexander-akait in #17011 - Add test for include option in
BannerPluginby @jeffin143 in #10736 - Remove
finializerfrom cspell.json by @snitin315 in #17022
Developer Experience
- Adds the twitter badge by @yadunandanbhat in #15667
- Add
wasm-bindgenexample toexampleby @gthb in #14313 - Update grammar mistakes in examples by @ersachin3112 in #16988
Dependencies & Maintenance
- Bump core-js from 3.30.0 to 3.30.1 by @dependabot in #16983
- Bump
@webassemblyjsby @alexander-akait in #17003 - Bump assemblyscript from 0.25.2 to 0.27.2 by @dependabot in #16959
- Bump enhanced-resolve to 5.13.0 by @TheLarkInn in #17024
- Included githubactions in the dependabot config by @neilnaveen in #15618
- Fix prettier by @alexander-akait in #16976
New Contributors
- @neilnaveen made their first contribution in #15618
- @yadunandanbhat made their first contribution in #15667
- @ersachin3112 made their first contribution in #16988
- @stefanprobst made their first contribution in #15198
- @xiaoboost made their first contribution in #17016
- @scameron made their first contribution in #16933
Full Changelog: https://github.com/webpack/webpack/compare/v5.79.0...v5.80.0
v5.79.0
New Features
- webpack will now support simple destructuring scenarios for treeshaking namespaced imports and
DefinePluginby @vankop in #16941
Bugfixes
- Truncate extremely long module names in
DefaultStatsPrinterby @snitin315 in #16882 - Add
[contenthash]template support inDllPlugin'snameoption by @snitin315 in #16935 - Fixed a bug where
readRecordscompiler hook was causing hangs in conjunction with theReadRecordsPluginby @snitin315 & @zookatron in #16944 - webpack can now consume ESM bundles generated by webpack's esm output support by @vankop in #15608
- [CSS] - webpack now respects CSS's case-insensitivity with atTags like
@MEDIAby @alexander-akait in #16915 - [CSS] - Fixes a bug where crossOriginLoading anonymous would not work when loading styles by @chenjiahan in #16925
Developer Experience
- Fix broken links and typos found in examples by @snitin315 in #16937
- Export more
ExternalsOption types by @snitin315 in #12774
Contributor Experience
- Add new test case for ModuleFederationPlugin usage with
shareScopeoption by @snitin315 in #16943 - Bump core-js from 3.20.3 to 3.30.0 by @dependabot in #16905
- Update all applicable local dependencies and devDependencies by @alexander-akait in #16919, #16924, #16936, #16968
- Update to Jest 29 by @alexander-akait in #16947
New Contributors
- @chenjiahan made their first contribution in #16925
- @karlhorky made their first contribution in #16419
- @zookatron made their first contribution in #16301
Full Changelog: https://github.com/webpack/webpack/compare/v5.78.0...v5.79.0
v5.78.0
Features
Bugfixes
- [CSS] - Nested atRule's
@mediaor@supportsnow properly are replaced with unique identifiers by @noreiller in #15812 - [CSS] - Fix bug where closing parenthesis in CSS were not properly parsed and compiled by @janlent1 in #16864
- Fix an issue where
oneOfrule has been picked multiple times by @xiaoxiaojx in #16477 - Add
createRequiresupport fornode:moduleprefix by @alexander-akait in #16904 - Fix bug where self-referencing a package in a shared module failed by @weareoutman in #16685
Performance
- Make
ErrorHelpersnamed functions; Add types by @TheLarkInn in #16893 - Introduce
ModuleTypeConstantsfor plugins by @TheLarkInn in #16896 - Refactor memory footprint in string usages for multiple plugins by @TheLarkInn in #16894
- Add more module type constants, use them across codebase by @TheLarkInn in #16898
Contributor Experience
- Implement default MR Template to use GitHub Copilot for MR's integration and fix template name usage by @geromegrignon in #16890
- ci: update actions/cache to v3 by @armujahid in #16462
- webpack org Collaborators and Members now have funded GitHub Codespaces!
New Contributors
- @geromegrignon made their first contribution in #16890
- @armujahid made their first contribution in #16462
- @long76 made their first contribution in #16562
- @weareoutman made their first contribution in #16685
Full Changelog: https://github.com/webpack/webpack/compare/v5.77.0...v5.78.0
v5.77.0
New Features
- Add a new output option,
output.workerPublicPathby @thomastay in #16671
Developer Experience
- Improve
resolve.extensionserror message to suggest when"."is missing before the extension by @snitin315 in #16807
Contributor Experience
- Enable GitHub Copilot for MR's into default Merge Request Template by @TheLarkInn in #16881
New Contributors
- @thomastay made their first contribution in #16671
Full Changelog: https://github.com/webpack/webpack/compare/v5.76.3...v5.77.0
v5.76.3
Bugfixes
- Non-javascript files will correctly not be imported when using
experiments.outputModule(ES Module Output) by @snitin315 in #16809 - Limit console output progress bar length to 40 when no columns provided by @snitin315 in #16810
- Add missing NodeJS Builtin Modules support for
inspector/promises,readline/promises, andstream/consumersby @ShenHongFei in #16841 - webpack bin/cli now properly respects
NODE_PATHenv variable by @snitin315 in #16808 - Improve typos in
resolveResourceErrorHintsby @snitin315 in #16806 - Add missing
loaderstoken support tomoduleFilenameTemplatefunction call by @pgoldberg in #16756 - Add gaurd condition for
enabledLibraryTypesin internalContainerPluginby @PengBoUESTC in #16635
New Contributors
- @ShenHongFei made their first contribution in #16841
- @pgoldberg made their first contribution in #16756
- @PengBoUESTC made their first contribution in #16635
Full Changelog: https://github.com/webpack/webpack/compare/v5.76.2...v5.76.3
v5.76.2
Bugfixes
- Fix bug where a missing semicolon in generated bundle output for
publicPathRuntimewould cause concatenated runtime errors by @snitin315 in #16811 - Remove redundant semicolons generated in bundle runtime code after
onScriptCompletefunction by @ahaoboy in #16347 - Fix bug where
RealContentHashPluginwas not respectingoutput.hashSalt's ability to cause a force recalculation of[contenthash]for emitted assets by @dmichon-msft #16789
Performance
- Improve memory and runtime performance of sourcemaps via hoisting Regular Expression literals to stored variables by @TheLarkInn in #15722
- Correct v8 deoptimization in
ModuleGraphdue to instance property declarations occurring outside of constructor by @snitin315 in #16830
Developer Experience
- Improved internal typings to match
webpack-sourcestypings forSourceinstances by @snitin315 in #16805 - Update repo examples to include missing quotation by @snitin315 in #16812
New Contributors
Full Changelog: https://github.com/webpack/webpack/compare/v5.76.1...v5.76.2
v5.76.1
Fixed
- Added
assert/strictbuilt-in toNodeTargetPlugin
Revert
- Improve performance of
hashRegExplookup by @ryanwilsonperkin in #16759
v5.76.0
Bugfixes
- Avoid cross-realm object access by @Jack-Works in #16500
- Improve hash performance via conditional initialization by @lvivski in #16491
- Serialize
generatedCodeinfo to fix bug in asset module cache restoration by @ryanwilsonperkin in #16703 - Improve performance of
hashRegExplookup by @ryanwilsonperkin in #16759
Features
- add
targettoLoaderContexttype by @askoufis in #16781
Security
- CVE-2022-37603 fixed by @akhilgkrishnan in #16446
Repo Changes
- Fix HTML5 logo in README by @jakebailey in #16614
- Replace TypeScript logo in README by @jakebailey in #16613
- Update actions/cache dependencies by @piwysocki in #16493
New Contributors
- @Jack-Works made their first contribution in #16500
- @lvivski made their first contribution in #16491
- @jakebailey made their first contribution in #16614
- @akhilgkrishnan made their first contribution in #16446
- @ryanwilsonperkin made their first contribution in #16703
- @piwysocki made their first contribution in #16493
- @askoufis made their first contribution in #16781
Full Changelog: https://github.com/webpack/webpack/compare/v5.75.0...v5.76.0
v5.75.0
Bugfixes
-
experiments.*normalize tofalsewhen opt-out - avoid
NaN% - show the correct error when using a conflicting chunk name in code
- HMR code tests existance of
windowbefore trying to access it - fix
eval-nosources-*actually exclude sources - fix race condition where no module is returned from processing module
- fix position of standalong semicolon in runtime code
Features
- add support for
@importto extenal CSS when using experimental CSS in node - add
i64support to the deprecated WASM implementation
Developer Experience
- expose
EnableWasmLoadingPlugin - add more typings
- generate getters instead of readonly properties in typings to allow overriding them
v5.74.0
Features
- add
resolve.extensionAliasoption which allows to alias extensions- This is useful when you are forced to add the
.jsextension to imports when the file really has a.tsextension (typescript +"type": "module")
- This is useful when you are forced to add the
- add support for ES2022 features like static blocks
- add Tree Shaking support for
ProvidePlugin
Bugfixes
- fix persistent cache when some build dependencies are on a different windows drive
- make order of evaluation of side-effect-free modules deterministic between concatenated and non-concatenated modules
- remove left-over from debugging in TLA/async modules runtime code
- remove unneeded extra 1s timestamp offset during watching when files are actually untouched
- This sometimes caused an additional second build which are not really needed
- fix
shareScopeoption forModuleFederationPlugin - set
"use-credentials"also for same origin scripts
Performance
- Improve memory usage and performance of aggregating needed files/directories for watching
- This affects rebuild performance
Extensibility
- export
HarmonyImportDependencyfor plugins
v5.73.0
Features
- add options for default
dynamicImportModeand prefetch and preload - add support for
import { createRequire } from "module"in source code
Bugfixes
- fix code generation of e. g.
return"field"in Module - fix performance of large JSON modules
- fix performance of async modules evaluation
Developer Experience
- export
PathDatain typings - improve error messages with more details
v5.72.1
Bugfixes
- fix
__webpack_nonce__with HMR - fix
inoperator in some cases - fix json parsing error messages
- fix module concatenation with using
this.importModule - upgrade enhanced-resolve
v5.72.0
Features
- make cache warnings caused by build errors less verbose
- Allow banner to be placed as a footer with the BannerPlugin
- allow to concatenate asset modules
Bugfixes
- fix RemoteModules when using HMR (Module Federation + HMR)
- throw error when using module concatenation and cacheUnaffected
- fix
inoperator with nested exports
v5.71.0
Features
- choose smarter default for
uniqueNamewhen using aoutput.librarywhich includes placeholders - add support for expressions with
inof a imported binding - generate UMD code with arrow functions when possible
Bugfixes
- fix source map source names for ContextModule to be relative
- fix
chunkLoadingoption in module module - fix edge case where
evaluateExpressionreturnsnull - retain optional chaining in imported bindings
- include runtime code for the base URI even if not using chunk loading
- don't throw errors in persistent caching when importing node.js builtin modules via ESM
- fix crash when using
lazy-onceContext modules - improve handling of context modules with multiple contexts
- fix race condition HMR chunk loading when importing chunks during HMR updating
- handle errors in
runAsChildcallback
v5.70.0
Features
- update node.js version constraints for ESM support
- add
baseUritoentryoptions to configure a static base uri (the base ofnew URL()) - alphabetically sort exports in namespace objects when possible
- add
__webpack_exports_info__.name.canMangle - add proxy support to
experiments.buildHttp -
import.meta.webpackContextas ESM alternative torequire.context - handle multiple alternative directories (e. g. due to resolve.alias or resolve.modules) when creating an context module
Bugfixes
- fix problem when assigning
globalto a variable - fix crash when using
experiments.outputModuleandloaderContext.importModulewith multiple chunks - avoid generating progress output before the compilation has started (ProgressPlugin)
- fix handling of non-static-ESM dependencies with using TLA and HMR in the same module
- include the asset module filename in hashing
-
output.cleanwill keep HMR assets for at least 10s to allow HMR to access them even when compilation is faster then the browser
Performance
- fix asset caching when using the BannerPlugin
Developer Experience
- improve typings
Contributing
- capture caching errors when running the test suite
v5.69.1
Revert
- revert "handle multiple alternative directories (e. g. due to resolve.alias or resolve.modules) when creating an context module"
v5.69.0
Features
- automatically switch to an ESM compatible environment when enabling ESM output mode
- handle multiple alternative directories (e. g. due to
resolve.aliasorresolve.modules) when creating an context module - add
util/typesto node.js built-in modules - add
__webpack_exports_info__.<name>.canMangleapi
Bugfixes
- fix bug in chunk graph generation which leads to modules being included in chunk desprite them being already included in parent chunks
- avoid writing more than 2GB at once during cache serialization (as workaround for node.js/libuv bug on MacOS)
- fix handling of whitespaces in semver ranges when using Module Federation
- avoid generating hashes which contain only numbers as they likely conflict with module ids
- fix resource name based placeholders for data uris
- fix cache serialization for context elements
- fix passing of
stageoption when instrumenting plugins for the ProfilingPlugin - fix tracking of declarations in concatenated modules to avoid conflicts
- fix unstable mangling of exports
- fix handling of
#in paths of loaders - avoid unnecessary cache update when using
experiments.buildHttp
Contributing
- update typescript and jest
Developer Experience
- expose some additional typings for usage in webpack-cli
v5.68.0
Features
- allow to disable compile time evaluation of import.meta.url
- add
__webpack_module__and__webpack_module__.idto the api
Bugfixes
- fix handling of errors thrown in async modules
v5.67.0
Features
- add 'outputPath' configuration option for resource asset modules
- support Trusted Types in eval source maps
-
experiments.css- allow to generate only exports for css in node
- add
SyncModuleIdsPluginto sync module ids between server and client compilation - add more options to the
DeterministicModuleIdsPluginto allow to generate equal ids
Developer Experience
- limit data url module name in stats printer
- allow specific description for CLI options
- improve space limiting algorithm in stats printing to show partial lists
- add
nullto errors in callbacks - fix call signature types of addChunkInGroup
Bugfixes
- avoid reporting non-existant package.jsons as dependencies
-
experiments.css- fix missing css runtime when only initial css is used
- fix css hmr support
- bugfixes to css modules
- fix cache serialization for CreateScriptUrlDependency
- fix data url content when processed by a loader
- fix regexp in identifiers that include
| - fix ProfilingPlugin for watch scenarios
- add layer to module names and identifiers
- this avoid random module id changes when additional modules are added to another layer
- provide hashFunction parameter to DependencyTemplates to allow customizing it there
- fix HMR when experiments.lazyCompilation is enabled
- store url as Buffer to avoid serialization warnings
- exclude
webpack-hot-middleware/clientfrom lazy compilation
Contributing
- remove travis configuration
- improve spell checking
v5.66.0
Features
- add
output.library.type: "commonjs-static"to emit a statically analyse-able commonjs module (for node.js esm interop support) - add
experiments.css(very experimental)- see #14893
Bugfixes
- fix CORS headers for
experiments.lazyCompilation - fix
[absolute-resource-path]for SourceMap module naming - avoid stack overflow when accessing many memory cached cache values in series
Performance
- reduce default
watchOptions.aggregateTimeoutto 20ms
v5.65.0
Features
- static evaluation understands
undefinednow - reduce container entry code by a few chars
- use template literals when available and they make sense
Bugfixes
- handle
singletonflag withoutrequiredVersionin Module Federation - upgrade
watchpackfor context time info bugfix
Performance
- improve RegExp in error message formating for non-quadratic performance
Developer Experience
- automatically insert brackets when
output.globalObjectcontains a non-trival expression - show error when using
scripttype external with invalid syntax - expose types for
Resolver,StatsOptionsandResolvePluginInstance
Preparations for the future
-
hashDigestLengthwill default to 16 in webpack 6 (experiments.futureDefaults)
v5.64.4
Bugfixes
- fix tagged template literal evaluation
- fix ModuleFederation with ESM
- fix outputModule with intial splitChunks
Performance
- upgrade watchpack for faster watcher updating
- track file and directory timestamps separately in watchpack and webpack
Developer Experience
- show origin of singleton shared module in mismatch warning
v5.64.3
Performance
- allow to use pre-compiled schema when
Infinityis used in configuration - allow to use pre-compiled schema for configuration arrays
v5.64.2
Bugfixes
- avoid double initial compilation due to invalid dependencies with managedPaths
v5.64.1
Bugfixes
- fix regexp in managedPaths to exclude additional slash
- make module.accept errorHandler optional in typings
- correctly create an async chunk when using a
require(...).propertyinrequire.ensure - fix cleaning of symlinks in
output.clean: true - fix change detection with
unsafeCachewithinmanagedPaths(node_modules) - bump webpack-sources for Stack Overflow bugfix
v5.64.0
Features
- add
asyncChunks: booleanoption to disable creation of async chunks
Bugfixes
- fix ProfilingPlugin for
experiments.backCompat: false
Performance
- avoid running regexp twice over the file list
v5.63.0
Features
- allow passing
chunkLoading: falseto disable on-demand loading
Bugfixes
- fix
import 'single-quote'in esm build dependencies
v5.62.2
Bugfixes
- fix
__system_context__injection when using thelibraryoption on entrypoint - enable
exportsPresence: "error"by default infutureDefaults - fix bad performance for a RegExp in Stats printing (with large error messages)
- fix
exportPresence->exportsPresencetypo - fix a bug with module invalidation when only module id changes with
experiments.cacheUnaffected
v5.62.1
Bugfix
- fix invalid generated code when omitting
;
v5.62.0
Features
- add options to configure export presence checking
-
parser.javascript.reexportExportsPresence: falseallows to disable warnings for non-existing exports during the migration fromexport ... from "..."toexport type ... from "..."for type reexports in TypeScript
-
- add
experiments.backCompat: falseto disable some expensive deprecations for better performance
Bugfixes
- use
['catch']instead of.catchfor better ES3 support - fix removed parentheses when using
new (require("...")).Something() - fix
{ require }object literals -
splitChunks.chunksoption is now correctly used forsplitChunks.fallbackCacheGroup.maxSizetoo - fix schema of
listenoption, allow to omitport - add better support for Promises from different isolates
Developer Experience
- add typings for the webpack API that is available within modules
- use
/// <reference types="webpack/module" />to use the typings in typescript modules - or
"types": [..., "webpack/module"]in tsconfig
- use
v5.61.0
Bugfixes
- use a wasm md4 implementation for node 17 support
- include the
pathsubmodules in the node.js default externals
Performance
- improve string to binary conversion performance for hashing
Contribution
- CI runs on node.js 17
v5.60.0
Features
- Allow to pass more options to
experiments.lazyCompilation. e. g. port, https stuff
Bugfixes
- fix
output.hashFunctionused to persistent caching too - Initialize
buildDependenciesSet correctly when loaders are added inbeforeLoadershook
v5.59.1
Bugfixes
- fix regexp in managedPaths
- fix hanging when trying to write lockfile for
experiments.buildHttp
v5.59.0
Features
- add
/*#__PURE__*/forObject()in generated code - add RegExp and function support for
managed/immutablePaths - add hooks for multiple phases in module build
- improvements to
experiments.buildHttp- allow to share cache
- add allowlist
- add
splitChunks.minSizeReductionoption
Bugfixes
- fix memory caching for Data URLs
- fix crash in
waitForwhen modules are unsafe cached - fix bug in build cycle detection
v5.58.2
Bugfixes
- fix serialization context passed
- fix a bug which caused module duplication when using persistent caching, unsafe cache and memory cache with GC
- fix validation of snapshots of non-existing directories
Performance
- store a hash in first bits of bigint to workaround v8 hashing: https://github.com/v8/v8/blob/b704bc0958e2e26305a68e89d215af1aee011148/src/objects/bigint.h#L192-L195
v5.58.1
Bugfixes
- fix
.webpack[]suffix to not execute rules - revert performance optimization that has too large memory usage in large builds
v5.58.0
Features
- add hook for readResource
- add
diagnostics_channelto node builtins
Performance
- improve chunk graph creation performance
- add cacheUnaffected cache support
- remove some caching that makes not difference
- improve splitChunks performance
- improve chunk conditions performance
v5.57.1
Bugfix
- fix experiments.cacheUnaffected which broke by last release
v5.57.0
Performance
- reduce number of hash.update calls
- allow ExternalModules to be unsafe cached
- improve hashing performance of module lists (StringXor)
Bugfixes
- experiments.cacheUnaffected
- handle module/chunk id changes correctly
- cache modules with async blocks
- show errors when using incompatible options
v5.56.1
Bugfix
- DefinePlugin: fix conflict with older variants of the plugin
v5.56.0
Performance
- make DefinePlugin rebuild check more efficient performance and memory wise
v5.55.1
Bugfixes
- fixes for
experiments.cacheUnaffected- fix accidentically shared mem caches
- avoid RuntimeSpecMap in favor of directly setting on memCache
- compare references modules when restoring mem cache
v5.55.0
Performance
-
experiments.cacheUnaffected- reduce cache memory usage
- make memCache per module
- cache ESM reexport computation
-
module.unsafeCache- make it faster by moving it to Compilation-level instead of in NormalModuleFactory
- omit tracking resolve dependencies since they are not used when unsafe cache is enabled
- module graph
- lazy assign ModuleGraphConnections to Dependencies since that is only accessed when uncached
v5.54.0
Features
- improve constant folding to allow to skip more branches for
&&||and?? - allow all hashing using in webpack to be configured with
output.hashFunction - no longer bailout completely from inner graph analysis when
evalis used in a module
Bugfixes
- force bump enhanced-resolve for bugfixes
Performance
- reduce number of allocation when creating snapshots
- add
output.hashFunction: "xxhash64"for a super fast wasm based hash function - improve utf-8 conversion when serializing short strings
- improve hashing performance for dependencies
- add
experiments.cacheUnaffectedwhich caches computations for modules that are unchanged and reference only unchanged modules
v5.53.0
Features
- add
node.__dirname/__filename: "warn-mock"which warns on usage (will be enabled in webpack 6 by default)
Bugfixes
- add
stream/webto Node.js externals - fix IgnorePluginSchema
- fix builds with persistent caching taking 1 minute to build at least
Experiments
- add
experiments.futureDefaultsto enable defaults for webpack 6
v5.52.1
Performance
- split fresh created persistent cache files by time to avoid creating very large files
v5.52.0
Feature
-
experiments.executeModuleis enabled by default and the option is removed- loaders are now free to use
this.importModule
- loaders are now free to use
Bugfixes
- fix generated
__WEBPACK_EXTERNAL_MODULE_null__, which leads to merged externals -
.webpack[...]extension is not part of matching and module name
v5.51.2
Bugfixes
- fix crash in FileSystemInfo when errors occur
- avoid property access of reserved properties
- fix reexports from async modules
- automatically close an active watching when closing the compiler
- when filenames of other runtimes are referenced that need a full hash, upgrade referencing runtime moduel to full hash mode too
- fixes a bug where
[contenthash]is undefined when usingnew Worker
- fixes a bug where
v5.51.1
Bugfixes
-
library: "module"propages top-level-await correctly - fix crash in filesystem snapshotting when trying to snapshot a non-existing directory
- fix some context-dependent logic in concatenated modules and source url handling
v5.51.0
Bugfixes
- correctly keep chunk loading state when the chunk loading logic is HMR updated
- This fixes some edge cases that e. g. occur when using lazy compilation for entrypoints. It is now able to HMR update that instead of needing a manual reload. Also see fixes in webpack-dev-server@4.
- track and resolve symlinks for filesystem snapshotting
- This fixes some cases of circular
yarn linking of dependencies. - It also fixes some problems when using package managers that use symlinks to deduplicate (e. g. cnpm or pnpm)
- This fixes some cases of circular
- pass the resulting module in the callbacks of
Compilation.addModuleChainandCompilation.addModuleTree
v5.50.0
Features
- hashbangs (
#! ...) are now handled by webpack
Performance
- disable cache compression by default as it tend to make performance worse
- I could still be enabled again for specific scenarios
- reduce the number of allocations during cache serialization
- This improves performance and memory usage
v5.49.0
Features
- add
experiments.buildHttpto buildhttp(s)://imports instead of keeping them external- keeps a
webpack.lockfile with integrity andwebpack.lock.datawith cached content that should be committed - Automatically upgrades lockfile during development when remote resources change
(might be disabled with
experiments.buildHttp.upgrade: false) - Lockfile is frozen during production builds and usually no network requests are made
(exception:
Cache-Control: no-cache). - The
webpack.lock.datapersisting can be disabled withexperiments.buildHttp.cacheLocation: false. That will will introduce a availability risk. (webpack cache will be used to cache network responses)
- keeps a
Bugfixes
- fix HMR infinite loop (again)
- fix rare non-determinism with
splitChunks.maxSizeintroduces in the last release - optional modules no longer cause the module to fail when
bailis set - fix typo in records format: chunkHashs -> chunkHashes
Performance
- limit the number of parallel generated chunks for memory reasons
v5.48.0
Features
- enable import assertions again
Bugfixes
- upgrade webpack-sources for fixes regarding source maps
- fix infinite loop in HMR runtime code
v5.47.1
Bugfixes
- upgrade webpack-sources for a bunch of bugfixes regarding source maps and missing chars in output
v5.47.0
Performance
- improve source-map performance
Bugfixes
- avoid unnecessary
"use strict"s in module mode
v5.46.0
Features
- status handlers in HMR api can now return Promises to delay the HMR process
- reasons in stats can now be grouped and collapsed
- add
stats.reasonsSpaceandstats.groupReasonsByOrigin
- add
Bugfixes
- fix a crash in asset modules when updating persistent cached modules from unsafe cached modules
Performance
- detailed preset limits all spaces to 1000 by default
- upgrade webpack-sources for a performance bugfix
v5.45.1
Bugfixes
- temporary revert import assertions because parser changes break the word
assertin other places -
import(/* webpackPrefetch: true */ ...)no longer breaks library output - DataURL tries to avoid re-encoding
- fix problems with DataURL encoding in some cases
v5.45.0
Features
- add support to import assertions
Bugfixes
- SourceMaps will now also be added to
.cjsoutput files - fix non-system externals in a system library
Performance
- avoid copying timestamps from the watcher to the compiler
Contributing
- update to jest 27
v5.44.0
Features
- add support for
output.module+optimization.runtimeChunk
Bugfixes
- fix inline externals with dash in type
v5.43.0
Features
- support
runtime: falsein entry description to disable runtime chunk - support
runtimeoption in ModuleFederationPlugin and ContainerPlugin
Bugfixes
- fix
"module"externals when concatenated
Performance
- serialize JSON data as buffer and parse on demand for performance and to avoid performance warning
v5.42.1
Bugfixes
- fix crashes when rebuilding with
jsonDataordataUrlof undefined
v5.42.0
Features
- add cache compression via
cache.compression - enable cache compression by default for non-development modes
Bugfixes
- add
node-commonjsto schema forexternalsType - update acorn to fix problems with top level await
- fix regression for
systemexternals
Performance
- fix a memory leak in the unsafe cache
v5.41.1
Bugfixes
- add missing types about experimental esm support to schema
- avoid slicing large Buffers as that doesn't always work for unknown reasons
Performance
- avoid slicing Buffers unnecessarily
v5.41.0
Features
- Persist cache faster when large changes are detected
- new option
cache.idleTimeoutAfterLargeChangesto control that
- new option
Bugfixes
- shutdown lazy compilation server correctly
Experiments
- EcmaScript modules support (
experiments.outputModule: true)-
output.library.type: "module": very basic support, no live bindings, unnecessary runtime code output.chunkLoading: "import"output.chunkFormat: "module"-
externalsType: "module"generates nowimport * as X from "..."(in a module) orimport("...")(in a script) - Node.js commonjs externals use
import { createRequire } from "module"in a module -
new Workeretc. sets `type: "module"
-
v5.40.0
Features
- accept
node:prefixed requests as node.js externals - avoid
instanceof Promisein favor ofp && typeof p.then === "function"to allow mixing different Promise implementions
Bugfixes
- fix usage analysis of class properties
Performance
- improve LazySet memory usage by shortcircuiting empty sets
- reduce algorithmic complexity of the structure analysis for plain objects serialization
Developer Experience
- allow
Bufferinthis.emitFiletypings (loader context) - improve
resetcli argument description
v5.39.1
Bugfixes
- reduce memory usage and fix memory leaks
v5.39.0
Features
- allow lazy compilation for
import()context (import with expression)
Bugfixes
- fix respecting
cache.allowCollectingMemory - fix cli loading after installing it
- fix initial list of non-js chunks that are flagged as already loaded
Performance
- remove unnecessary
Error.captureStackTracefrom webpack errors
v5.38.1
Performance
- fix missing increment in sorting optimization from last release
v5.38.0
Features
-
new URL("data:...", import.meta.url)is now supported - add
module.rules[].schemeas condition to match the request scheme (likedata,http, etc.)
Bugfixes
- fix tracking of changes and removals during watching in some edge cases
- fix incorrect renaming of class fields in concatenatenated modules
- fix crash in HMR when removing runtimes from the compilation
Performance
- lazy import some internal modules only when used
- allow unsafe caching of the entrypoint
- improve performance of sorting exports info map
- update to latest webpack-sources for improved source map performance
v5.37.1
Bugfixes
- When using multiple configurations in watch mode and calling
Watching.invalidate,dependenciesandparallelismof the config array is now respected correctly - Fix a crash when accessing the
statsafter the next compilation has started - fix collecting changes when using
Watching.suspend - fix schema of
RuleCondition.notand allow passing a condition directly instead of only an array
Developer Experience
- typings accept a ReadonlyArray of configurations now
Contributing
- fix coverage reporting for child processes
- remove outdated loader from readme
v5.37.0
Features
- add
output.trustedTypes
Bugfixes
- fix inclusion of too many chunk in the filename function when using
dependOn - allow errors to be
nullin fs callbacks
Developer Experiences
- make ESM tracking info message less verbose
- add typings for loaders
v5.36.2
Bugfixes
- correctly handle errors thrown during parser/generator creation
- e. g. validation errors for asset module options
- use a better automatic runtime name for workers
- not too long to cause filename problems
- no longer assume assets do not get removed when the compiler is running
- Using
output.cleanis against this assumption - It fixes a bug where assets are missing, when removed and readded to the compilation
- Using
- fix a problem when chained dependOn, which causes too many modules being included in entrypoints
v5.36.1
Performance
- add
cache.profile(type: "filesystem"only) flag for more info about (de)serialization timings - avoid complex "by exports" splitting for splitChunks in development mode
- faster hashing for the common case
- improve algorithmic complexity for merging InitFragments to solve performance in an edge case
v5.36.0
Features
- add support for class fields (stage 4)
Performance
- improve (de)serialization performance of dependency locations
v5.35.1
Bugfixes
- fix an
__webpack_exports__ is not definederror with some library types
performance
- improve stats grouping performance
- improve providedExports analysis performance
- improve hashing performance
- lazy merge dependencies from creating context modules
- improve dependency parents access performance
v5.35.0
Bugfixes
- fix handling of build dependencies with
#in path
Performance
- improve memory usage when using the filesystem cache
When reading a file into a Buffer and picking smaller slices of the Buffer the small slices still keep a reference to the large original Buffer. The leads to increased memory usage. A fix would be to clone the slice into a smaller Buffer when wasting too much memory, but this has a performance cost. There is now a new option
cache.allowCollectingMemorywhich controls that. For one-off builds you probably wantallowCollectingMemory: falseand for watch builds you probably wantallowCollectingMemory: true. It defaults to false in production mode and true in development mode.
v5.34.0
Features
- add support for empty string in
resolve.extensionsand handle them in this order - add
pnpapias builtin external when usingtarget: "node"
Bugfixes
- fix a bug where chunks filenames where not included in runtime when using splitChunks and runtimeChunk with
target: "node" - fix deprecation message from LimitChunkCountPlugin
Performance
- precompile schemas into functions to avoid schema compilation overhead
- fix performance regression when storing the cache
- performance improvement for snapshot file iterators
Developer Experience
- remove removed
store: 'idle'from schema description
v5.33.2
Bugfix
- handle falsy entry options correctly
v5.33.1
Bugfix
- fix passing publicPath to
this.importModule
v5.33.0
Features
- adds support for specifying a
publicPathper entrypoint- add
entry.xxx.publicPathoption
- add
Bugfix
- disable injection of chunk loading logic for
executeModule
Performance
- performance improvements for
export *and reexports
v5.32.0
Features
- add support for a pseudo extensions
.webpack[type](e. g..webpack[javascript/auto]) to specify the default module type when no other module type is specified- to be used with
!=!inline syntax
- to be used with
Bugfixes
- fixes incorrect cache invalidation when new properties are added to the DefinePlugin
Experiments
- add
experiments.executeModuleto allow build-time execution of modules of the module graph- add
this.importModule(request, options, [callback]): Promiseto the loader context - add
compilation.executeModule(request, options, callback)for plugins
- add
v5.31.2
Bugfixes
- revert disposing of CodeGenerationResults since some plugins rely on the fact that they are still accessible after the compilation
v5.31.1
Bugfixes
- invalid hooks is no longer called twice for a compiler in a MultiCompiler
Memory
- eliminated some memory leaks
- dispose code generation results after sealing the compilation
Performance
- improve performance of cache serialization by reducing number of write syscalls
v5.31.0
Features
- add a few more options for infrastructure logging:
-
infrastructureLogging.colors: Enables/Disables colorful output. -
infrastructureLogging.appendOnly: Only appends lines to the output. Avoids updating existing output e. g. for status messages. -
infrastructureLogging.stream: Stream used for logging output. Defaults to process.stderr. -
infrastructureLogging.console: Custom console used for logging. - When stream is an TTY colors is enabled and appendOnly is disabled. Otherwise it's flipped.
-
Bugfixes
- Persistent Caching
- fix caching crash when using fsevents in build dependencies
- improve resolving of build dependencies when
exportsfield is used - make problems during resolving build dependencies warnings instead of debug messages
- prioritize static reexport over runtime reexport for target determination
- This helps in optimization by no longer opting out of optimization when some other exports any dynamic (from commonjs or empty/type-only modules)
- fix bug with subtraction of runtimes
- This fixes a problem with concatenated modules in builds with multiple runtimes and force-merged shared chunks
- ensure that entrypoints are always re-executed when HMR-updated
- This fixes no longer updating pages when the entrypoint crashed
v5.30.0
Features
- add GC to memory cache
- opt-in via
cache.maxGenerationswhencache.type: "memory" - default for
cache.type: "filesystem"andmode: "development" - configure via
cache.maxMemoryGenerationswhencache.type: "filesystem" - Generations = Rebuilds
- opt-in via
- add GC for untouched filesystem cache files
- allow to configurate GC for the filesystem cache via
cache.maxAge - allow to disable memory cache when using the filesystem cache with
cache.maxMemoryGenerations: 0 - Caches will be cleared on Compiler close resp Cache shutdown (after persisting for the filesystem cache)
Bugfixes
- add a few workarounds for v8 bug that causes memory leaks in optimized code (only partially fixes it)
- after serializing filesystem no longer keeps cache items in memory, instead it will read them from disk again when accessed
GC = Garbage Collection
v5.29.0
Bugfixes
- fix some edge cases for
splitChunks.maxSizewhich cause too large chunks to be created - add
stats.groupModulesByTypeto the schema
Developer Experience
- add resolving trace for error during resolving build dependencies
- expose Stats-related types
- exports AsyncDependenciesBlock and
Module/Const/NullDependencyon the API
v5.28.0
Features
- add
module.generator.asset.publicPathto configure a different publicPath for assets
Bugfixes
- fixes a watch mode caching problem which was introduced in 5.26.0 when using the unsafe cache
Performance
- improve serialization performance
v5.27.2
Bugfixes
- fix error reporting when errors happen in
beforeLoadershook - avoid crash when
experiments.lazyCompilationis used (regression) - fix lazy compilation opt-out when HMR accept/decline is used on an
import() - fix
new URL(new URLgenerated by worker handing
v5.27.1
Bugfix
- allow invalidation after first watch run in MultiCompilers
v5.27.0
Features
- add
utils: { contextify(context, absolutePath), absolutify(context, request) }to loader context
Bugfixes
- fix caching bug when split chunks of an entrypoint change and modules of the entrypoint stay equal
- fix
importsfield handling - fix incorrect id assignment of record ids plugin
- this causes ids changing unnecessary during watch mode
- fix library exports when using onChunks in entry
- This prevented using libraries with web target when using splitChunks for the initial chunks
v5.26.3
Bugfix
- fix race condition in MultiCompiler queueing
v5.26.2
Bugfixes
- fix problem with new line after comment
- fix assign libraries with runtime chunk
v5.26.1
Bugfixes
- avoid using strict mode runtime for assign libraries to allow assigning not existing variables
- avoid collision with
Set.addAllpolyfill - allow filenames starting with
../when generation the undo path for non-web targets
v5.26.0
Features
- handle cache version automatically for DefinePlugin
- Values no longer need to be defined as build dependencies
- add more options for
DefinePlugin.runtimeValue(file/context/missing/buildDependencies, version)
Bugfixes
- fix a memory leak which happens in watch mode with caching when modules are removed from the compilation
- fix usage of some arrow functions when es5 target is selected
- chunk loading in workers now uses publicPath instead of relative paths
- fixes a problem when worker file is in a child directory
v5.25.1
Bugfixes
- fix startup logic when non-js chunks are in the entrypoint
- remove
type: "module"for Workers when generating classic scripts
v5.25.0
Features
- Refactor the startup logic to improve library support
- add
__webpack_runtime_id__to access the current runtime id - improve error handling for HMR
- add second argument to self accept error handler to pass new module and module id
- add error handler argument to dependency accept, passing error and module ids
- add
output.strictModuleErrorHandlingto opt into stricter evaluation error handling semantics according to ESM spec- used by default when HMR is enabled
- when ignoring a module used by
new URL()this will result in an url to a empty file ("data:,") - add
module.generator.asset.emitoption to disable creating assets from asset modules (e. g. for SSR)
Bugfixes
- fix problem when library options apply to a non-runtime chunk
- fix crash in
splitChunks.maxSizewhere negative indicies are accessed - fix sub-optimal splitting of
splitChunks.maxSizein some cases when multiple size types are involved - fix a memory leak in AssetGenerator
- fix usage of runtime globals in SharedPlugin to support HMR updates
Deprecations
- deprecate
output.strictModuleExceptionHandling(this is the CommonJS way of handling errors, and the name is weird)
v5.24.4
Bugfixes
- fix overridding built-in externals via
externals - fix handling UNC paths as windows paths
- Improve error when passing an empty array as library name
- avoid adding the package.json from compilation context as build dependency
- fix expansion of
"..."in array configuration options when it's not at the start
v5.24.3
Bugfixes
- fix contenthash when a file is emitted twice with different filenames but that same contenthash
v5.24.2
Bugfixes
- fix invalid syntax generated for destructuring with default values
- fix some incorrect properties accesses in watch
-
modifiedFilesandremovedFileswere undefined
-
- fix some edge cases with MultiCompiler
v5.24.1
Performance
- improve performance of finding modules to concatenate
- improve performance of getting incoming modules from connections
- make sure that all serialized modules restore correctly
- avoid storing ConcatenatedModule, since that's not needed
Developer Experience
- fix typo in deprecation message
v5.24.0
Bugfixes
- fix name conflict when using destructing with default arguments in concatenated modules
- fix tracking of reexports in concatenated modules when using multiple
export *that point to the same export - debug logging is now included even if logging is not
- fix name of ModuleConcatenationPlugin logger
- fix
experiments.lazyCompilation: true. It now has an effect.
Developer Experience
- expose
Watchingtype
Contribution
- fix husky setup
Performance
- improve performance of module concatenation
v5.23.0
Features
- add
parserOptions.url: "relative"option- Allows to generate relative URLs from
new URL(e. g. for SSG/SSR)
- Allows to generate relative URLs from
Bugfixes
- fixes for electron target
- electron has importScripts in worker
- only choose a chunkLoading which fits to the chunkFormat
- prefer fetch wasm loading over node wasm loading
- fix regression when combining library + runtimeChunk + node target
Developer Experience
- export MultiStats type
v5.22.0
Features
- generate shorter output code for JSON data by using a
'...'string instead of"..."(only affects output side when not minimized) - the
dependenciesconfiguration option now works for watch builds too- It will build compilation when any of
dependencieshas changed - It will wait for compiling until all of
dependencieshave finished
- It will build compilation when any of
- add
parallelismconfig option on the array of configurations to limit the compilers that are running in parallel
Developer Experience
- add hints (
Did you mean ...) to resolve errors when- resolving fails due to
enforceExtension - relative request is missing leading
./
- resolving fails due to
- when all modules of an entrypoint fail resolving and another entrypoints
depend(s)Onit, webpack no longer crashes with a weird error - add hint to stats how to get details about errors/warnings in child compilations
- improve error message for lazyCompilation when using IE11
Bugfixes
- async entries e.g. for Workers are now implicitly flagged as "having side effects" even if they are affects by
"sideEffects": false- in future we might add a warning for this
- avoid crash when using
this.loadModule(loader) and the loaded module has errors - refactor libraries to inline exporting code into runtime to allow using with
output.iife: false - fix invalid code when using
definefor local modules and arrow functions are supported - fix missing runtime requirement for system.js context
- fix parsing of
definefunction, which missed declarations before - avoid unnecessary calls to loaders when serializer are already registered
- fix inner graph analysis for exports when
export { x }is before pure declarationconst x = /*#__PURE__*/ f() - fix hashing order of runtime chunks when there are async entries involved
Contribution
- CI run tests on node.js 15 too
- CI run tests on github actions too
Experiments
- improvements on experimental
output.library: { type: "module" }(experiments.outputModule: true)- it can generate
export { ... }now, but that can't handle live-bindings yet
- it can generate
v5.21.2
Bugfixes
- json with
constructorproperty now caches correctly - json generation with object prototype property now works correctly
- tree shaking json array when accessing
lengthproperty now works correctly - fix incorrect call context when calling properties on imports from CommonJS modules
v5.21.1
Bugfixes
- fix a crash when using colors in stats
v5.21.0
Features
- add
__webpack_base_uri__to change base URI at runtime - add
stats.errorDetails: "auto"to show error details automatically when there are only 1 or 2 errors
Bugfixes
- fix a hanging build when using the persistent cache without a package.json in cwd
Developer Experience
- add typings for the stats JSON
- change default for
stats.errorDetailsto"auto"when usingtoString - Highlight important text in error message with colors
- e. g.
Did you mean ...?and similar hints are shown in green
- e. g.
v5.20.2
Bugfixes
- fix caching issue with asset modules causing
undefinedfiles - fix problem that rebuildModule doesn't follow dependencies
v5.20.1
Bugfix
- fix
Caching failed for pack: RangeError [ERR_OUT_OF_RANGE]warning when serializing the cache
v5.20.0
Features
- add
experiments.lazyCompilation.importsto disable lazy compilation ofimport()s - add
experiments.lazyCompilation.testto allow custom selection of modules that should be lazy compiled - When using
profile: trueresp.--profilewebpack will now print a summary of expensive modules or loaders
Bugfixes
- fix that
experiments.lazyCompilation.clientnow works as intended - fix a bug which causes runtime requirements to be missing e. g.
__webpack_require__ is not defined
Developer Experience
- expose
EntryObjecttype in typings - remove
pkg-dirdependency
v5.19.0
Features
- allow to set chunk name for
exposesforModuleFederationPlugin
Bugfixes
- add a missing simicolon in runtime code
- improve consistency of top level await with other implementations and the spec
- make
optionsforProgressPluginoptional in typings
Performance
- try to avoid unnecessary allocations
v5.18.0
Internals
- refactor hashing to move the responsibility of hashing module exports info and referenced modules from Dependencies to the Module
- Hashing in Dependencies can be much cheaper now (could improve performance when many dependencies are used that point to the same module, like many references to
React.createElement) - Fixes bugs where Dependencies forgot to hash some details about the referenced module
- The new model elimiates the potential of such bugs are Dependencies have less responsibilities now
- Hashing in Dependencies can be much cheaper now (could improve performance when many dependencies are used that point to the same module, like many references to
v5.17.0
Features
- add experimental lazy compilation via
experiments.lazyCompilation: truefor web and node targets- compiles entrypoints and
import()s only when they are accessed - More details see: #12469
- Known issues:
webpack-dev-server/webpack serveopening an entrypoint for the first time, sometimes need a manual refresh.
- compiles entrypoints and
- move some javascript parsing related configuration options from
moduletomodule.parser.javascriptand also allow to set them viamodule.rules - add
module.parser.javascript.commonjsMagicCommentsto enable/* webpackIgnore: true */forrequire()calls
Bugfixes
- fix a problem with
webpack.debug.ProfilingPluginon Mac when the computer was suspended before. - fix a bug with IIFE handling when the IIFE has parameters with default values
v5.16.0
Features
- add
__webpack_is_included__("./some-module")which returns true when the module is bundled and false when not - priorize eager shared modules over normal shared modules (with the same version), as they are loaded anyway
- add
library.type: "assign-properties"which merges all exports into a global variable - allow
optimization.innerGraphfornew URL()- This allows to detect which URLs are used and drop the module and asset when they are not.
Bugfixes
- only return exports from runtime when needed
- This allows to use
experiments.outputModule: truewithoptimization.runtimeChunk
- This allows to use
- fix a bug that
splitChunk.reuseExistingChunkdoesn't work for entrypoints- This optimized an edge case where a nearly empty entrypoint is created when an entrypoint contains only vendor modules
Developer Experience
- include plugin names in deprecation message for "NormalModuleFactory.xxx is no longer a waterfall hook"
- improve error message when passing an invalid library name
v5.15.0
Features
- add
getResolvemethod to data object when using functionexternals -
externalsfunction may return a promise now
Bugfixes
- fix
define("local-module", expr)generating invalid syntax - fix resolving bug when resolving build dependencies
- add
chunkModulesSpaceto schema - fix
rebuildModuleapi
Performance
- improve performance of build dependencies resolving
v5.14.0
Features
- add experimental ESM tracking for build dependencies
Bugfixes
- fix crash when calling
watcher.getContextTimeInfoEntries() - make filesystem types compatible with
memfsand realfs - fix rebuild error when using the
AutomaticPrefetchPlugin
Contribution
- improve type definitions by using typescript 4.2
v5.13.0
Features
- add
resolve.preferAbsoluteflag for compatibility with webpack 4 - add support for wildcards in
exportsandimportsfield - improve chunk and module names
- use
nameForCondition()as fallback for module names - handle module connection with only transive side effects correctly when determining chunk root modules
- use
v5.12.3
Bugfixes
- upgrade
@webassembly/*andterser-webpack-plugindependencies
v5.12.2
Bugfixes
- fix problem with typings in strict mode
v5.12.1
Bugfixes
- fix a crash in ConcatenatedModule when deserializing
- fix some not serializable warnings
- show error when using an invalid identifier as
varlibrary
v5.12.0
Features
- add
experiments.layers-
entry.xxx.layer: "name-of-layer"allows to set the layer for an entrypoint -
module.rules[].issuerLayer: RuleConditionallows to filter/match by layer of issuer -
module.rules[].layer: "name-of-layer"allows to set the layer of an module -
splitChunks.cacheGroups.xxx.layerallows to select modules by layer -
externals.byLayer["name-of-layer"]allows to specify externals by layer -
externals.byLayer: (layer) => ...allows to specify externals by layer -
externalsfunction has an additional argument propertycontextInfowhich contains info about the issuer (e. g. the layer)
-
- add
module.parserandmodule.generatoroptions to allow to specify parser/generator options globally per module type - make
chunkIdvariable available in script tag hook (like it was with webpack 4)
Bugfixes
- escape exclamation marks in context regexp when generating readable module names/ids
- fix a problem when bundling webpack bundles with enabled eval-based devtools
- add
stats.nestedModulesSpaceto schema to allow to specify this option - fix a bug that incorrectly replaces
new.targetwith constants - fix a bug where
splitChunkminSizeis not handled correctly - fix a bug where the order of
splitChunkcacheGroupsis not handled correctly - avoid adding non-filesystem resources as dependencies for watching and caching
Developer experience
- fix incorrect negation in hint comment for eval-based devtools
- improve error messages of "Library/Chunk Loading/Wasm Loading typeof is not enabled" errors
- improve question message when asking to install webpack-cli
- show a warning when loaders/plugins report invalid dependencies to webpack
Contributing
- examples use webpack-cli 4 now
- rename memorize to memoize
v5.11.1
Bugfixes
- ignore cloned ExportInfo during hashing
- fixes a problem where changing modules affects hashes in some other part of the application during development
- fixes compileBooleanMatcher when prefix and suffix overlap
- fixes invalidate code generated when generating properties access
- fix
objecttypes in typings - expose more types regarding Stats
v5.11.0
Features
- update typings to include undefined/null types (for strict type)
- export WebpackError
- export Asset and AssetInfo types
- allow error configuration for
validateSchemafunction
Bugfixes
- fix typings for SourceMapSource
- allow custom properties in AssetInfo
- handle
undefinedvalues for rule conditions like empty strings
v5.10.3
Bugfixes
- errors in initial cache no longer cause build dependencies to be ignored
- manual side effects flagging should override automatic analysis
- modules in dlls without entryOnly will no longer be dropped because of no side effects
v5.10.2
Bugfixes
- add a few missing node.js libraries as externals in
target: "node" - improve cache (de)serialization to allow larger cache files (>2GB) and increase performance for them
v5.10.1
Bugfixes
- avoid duplicating chunk info in chunk loading global
- allow executing chunks before runtime is loaded
- avoid error when emitting assets with different query string but identical filename and content
- fix duplicated asset name in
processAssetswithadditionalAssets - add missing
\in module info header comment
v5.10.0
Bugfixes
- Multiple fixes regarding the side effects optimization (
"sideEffects": false) when reexports and concatenated modules are combined
Contributing
- Typescript major 4
- Improved internal structure of our typings
Performance
-
output.pathinfo: true(default in development) adds less verbose information (and is faster) -
output.pathinfo: "verbose"adds more verbose information -
output.pathinfo: trueis cached - avoid assets and module stats information generation when they are cached and cached assets/modules are not shown
v5.9.0
Features
- improve side effects analysis to report imported and reexported symbols as side-effect-free
Bugfixes
- fix problem when HMR and different runtimes (e. g. with Workers)
- caused crash with
... has no hash info for runtime ...
- caused crash with
v5.8.0
Features
- add the ability to process assets generated in later stages during processAssets
- new processAssets stage:
PROCESS_ASSETS_STAGE_OPTIMIZE_INLINE - add hooks to the RealContentHashPlugin to allow to process custom hashes (e. g. SRI)
Bugfixes
- fix typing for child compiler plugins
- SourceMapPlugin will process assets added in later stages during asset processing
v5.7.0
Features
- CLI supports installing webpack-cli via
pnpm
Bugfixes
- fix problem with ASI detection, causing semicolons inserted after
if(...)etc.
v5.6.0
Bugfixes
- emit warnings/errors for exports in commonjs modules for which we know that they don't exist
v5.5.1
Bugfixes
- fix crash when __esModule is defined with defineProperty without value
v5.5.0
Bugfixes
- fix ASI issues that occur between concatenated modules
- fix incorrect handling of
[id]and etc. in SourceMap sources - fix side-effect-free handling of exports for concatenated modules that causes an unused export
- make ESM-CJS interop handling consistent
- make
__esModuleflag consistent exposed - handle non enumerable exports
- handle inherited exports
- handle exported Promises
- make
v5.4.0
Bugfixes
- fix renaming in super class expression in nested scopes
- fix parsing and handling of browserlist queries
- fix a few edge cases with ESM-CJS interop and .mjs
- fix ASI edge cases
v5.3.2
Bugfixes
- runtime-dependent concatenated modules can generate code for runtime-dependent execution order of concatenated modules
v5.3.1
Bugfixes
- fix incorrect concatenation of modules when multiple runtimes are involved
- fixes a "This should not happen" error
- fixes a
__webpack_require__(null)problem
- run CLI correctly after installing
- fixes a huge performance issue when processing minimized code with SourceMap
- Use
string[]types instead of[string, ...string[]]for arrays that must not be empty- this is more convinient to use
Performance
- avoid incorrect store of counts in the ProgressPlugin, which causes unneeded serialization of the Persistent Cache
- upgrade terser-webpack-plugin for performance improvements
- upgrade webpack-sources for performance improvements
v5.3.0
Features and Bugfixes
- generate runtime conditional code when modules are forcefully merged from multiple runtimes
- This fixes a
Cannot read property 'call' of undefinederror in webpack runtime, because modules are used that are not in the graph in one runtime
- This fixes a
- disabled source code analysis for side effects in non-production modes
- this causes unnecessary changes to parent modules in development
- add
optimization.sideEffects: "flag"as option for this
v5.2.1
Bugfixes
- add
watchOptions.followSymlinksoption to schema - fix hard crash when calling resolve with undefined value
- fix emit problem when files have hash in query string
- fix unneeded generation of SourceMaps when no devtool is used
- fixes a huge performance regression with terser-webpack-plugin
v5.2.0
Features
- add
sourceFilenameandjavascriptModuleto asset info for plugins
Bugfixes
- fix variable name collision when using module concatenation
- fix arrow functions in ie 11
- fix
thisexternals with module concatenation - force update for enhanced-resolve for critical bugfixes (see changelog)
v5.1.3
Bugfixes
- omit unused modules from chunks when modules are only unused in some runtimes
- fixes
Self-reference dependency has unused export nameerror
- fixes
- fix order of asset optimization to fix conflict between compression-plugin and real hash plugin
v5.1.2
Bugfixes
- revert: omit unused modules from chunk when modules are only unused in some runtimes
- caused issues with mini-css modules
v5.1.1
Bugfixes
- fix order of chunk hashing to allow to uses hashes in WebWorkers
- update to terser-webpack-plugin 5
- reduces number of dependencies by dropping webpack 4 support
- omit unused modules from chunk when modules are only unused in some runtimes
- fixes
Self-reference dependency has unused export nameerror
- fixes
- fix hanging production builds because of infinite loop in inner graph optimization
-
Compilation.deleteAssetupdates chunk to file mappings
v5.1.0
Features
- expose
webpackproperty fromCompiler - expose
cleverMerge,EntryOptionPlugin,DynamicEntryPlugin
Bugfixes
- missing
require("..").xxxin try-catch produces a warning instead of an error now - handle reexports in concatenated modules correctly when they are side-effect-free
- fix incorrect deprecation message for ModuleTemplate.hooks.hash
v5.0.0
v4.47.0
New Features
- [Security] - Add support for md4 in Node >=18. by @iclanton in #17628
New Contributors
- @iclanton made their first contribution in #17628
Full Changelog: https://github.com/webpack/webpack/compare/v4.46.0...v4.47.0
v4.46.0
Bugfixes
- fix behavior of defaults for
resolve.rootsto be backward-compatible
v4.45.0
Features
- resolve server-relative requests relative to project context by default
Bugfixes
- fix a bug where
splitChunkminSizeis not handled correctly - fix a bug where the order of
splitChunkcacheGroupsis not handled correctly
v4.44.2
Bugfixes
- make sure to generate correct chunk connection for blocks that are only connected in some runtimes
- fixes a bug where filename contains undefined hash at runtime
v4.44.1
Bugfixes
- fix bug in sideEffects optimization when using
export * from "non-esm"and a default export. - add missing optional peerDependencies for webpack-cli and webpack-command to support Yarn 2
v4.44.0
Features
- Improve
sideEffectsflag behavior when dynamic modules are part of the tree- Fixes a bug which causes empty modules (or type-only modules) to "break" Tree Shaking
- add
splitChunks.enforceSizeThresholdto allow enfore splitting larger chunks unrelated from other limiations- Not set by default to avoid breaking change
- It will be set by default to 50k in webpack 5
- It's recommended to set it in webpack 4 too
- add support for
resolve.rootsand defaultresolve.roots: [context]- This allows to resolve server-relative urls (e.g.
/src/abc) to the project root (or other locations when configured) - This allows to use loaders that rely on that behavior
- This allows to resolve server-relative urls (e.g.
Bugfixes
- fix bug where splitChunks produced non-optimal results when
minSizeis set to0- This lead to
NaNs in some places which breaks ordering
- This lead to
- Fix bug which lead to HMR not working for splitChunks in entrypoints
- force update watchpack and chokidar for chokidar bugfix which causes files to stop being watched
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.