Skip to content

chore(deps): update dependency webpack to v5

Renovate Bot requested to merge renovate/webpack-5.x into master

This MR contains the following updates:

Package Type Update Change
webpack devDependencies major 4.46.0 -> 5.53.0
@types/webpack devDependencies major 4.41.31 -> 5.28.0

Release Notes

webpack/webpack

v5.53.0

Compare Source

Features

  • add node.__dirname/__filename: "warn-mock" which warns on usage (will be enabled in webpack 6 by default)

Bugfixes

  • add stream/web to Node.js externals
  • fix IgnorePluginSchema
  • fix builds with persistent caching taking 1 minute to build at least

Experiments

  • add experiments.futureDefaults to enable defaults for webpack 6

v5.52.1

Compare Source

Performance

  • split fresh created persistent cache files by time to avoid creating very large files

v5.52.0

Compare Source

Feature

  • experiments.executeModule is enabled by default and the option is removed
    • loaders are now free to use this.importModule

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

Compare Source

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 using new Worker

v5.51.1

Compare Source

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

Compare Source

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)
  • pass the resulting module in the callbacks of Compilation.addModuleChain and Compilation.addModuleTree

v5.50.0

Compare Source

Features

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

Compare Source

Features

  • add experiments.buildHttp to build http(s):// imports instead of keeping them external
    • keeps a webpack.lock file with integrity and webpack.lock.data with 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.data persisting can be disabled with experiments.buildHttp.cacheLocation: false. That will will introduce a availability risk. (webpack cache will be used to cache network responses)

Bugfixes

  • fix HMR infinite loop (again)
  • fix rare non-determinism with splitChunks.maxSize introduces in the last release
  • optional modules no longer cause the module to fail when bail is set
  • fix typo in records format: chunkHashs -> chunkHashes

Performance

  • limit the number of parallel generated chunks for memory reasons

v5.48.0

Compare Source

Features

  • enable import assertions again

Bugfixes

  • upgrade webpack-sources for fixes regarding source maps
  • fix infinite loop in HMR runtime code

v5.47.1

Compare Source

Bugfixes

  • upgrade webpack-sources for a bunch of bugfixes regarding source maps and missing chars in output

v5.47.0

Compare Source

Performance

  • improve source-map performance

Bugfixes

  • avoid unnecessary "use strict"s in module mode

v5.46.0

Compare Source

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.reasonsSpace and stats.groupReasonsByOrigin

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

Compare Source

Bugfixes

  • temporary revert import assertions because parser changes break the word assert in 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

Compare Source

Features

  • add support to import assertions

Bugfixes

  • SourceMaps will now also be added to .cjs output 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

Compare Source

Features

  • add support for output.module + optimization.runtimeChunk

Bugfixes

  • fix inline externals with dash in type

v5.43.0

Compare Source

Features

  • support runtime: false in entry description to disable runtime chunk
  • support runtime option 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

Compare Source

Bugfixes

  • fix crashes when rebuilding with jsonData or dataUrl of undefined

v5.42.0

Compare Source

Features

  • add cache compression via cache.compression
  • enable cache compression by default for non-development modes

Bugfixes

  • add node-commonjs to schema for externalsType
  • update acorn to fix problems with top level await
  • fix regression for system externals

Performance

  • fix a memory leak in the unsafe cache

v5.41.1

Compare Source

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

Compare Source

Features

  • Persist cache faster when large changes are detected
    • new option cache.idleTimeoutAfterLargeChanges to control that

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 now import * as X from "..." (in a module) or import("...") (in a script)
    • Node.js commonjs externals use import { createRequire } from "module" in a module
    • new Worker etc. sets `type: "module"

v5.40.0

Compare Source

Features

  • accept node: prefixed requests as node.js externals
  • avoid instanceof Promise in favor of p && 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 Buffer in this.emitFile typings (loader context)
  • improve reset cli argument description

v5.39.1

Compare Source

Bugfixes

  • reduce memory usage and fix memory leaks

v5.39.0

Compare Source

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.captureStackTrace from webpack errors

v5.38.1

Compare Source

Performance

  • fix missing increment in sorting optimization from last release

v5.38.0

Compare Source

Features

  • new URL("data:...", import.meta.url) is now supported
  • add module.rules[].scheme as condition to match the request scheme (like data, 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

Compare Source

Bugfixes

  • When using multiple configurations in watch mode and calling Watching.invalidate, dependencies and parallelism of the config array is now respected correctly
  • Fix a crash when accessing the stats after the next compilation has started
  • fix collecting changes when using Watching.suspend
  • fix schema of RuleCondition.not and 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

Compare Source

Features

  • add output.trustedTypes

Bugfixes

  • fix inclusion of too many chunk in the filename function when using dependOn
  • allow errors to be null in fs callbacks

Developer Experiences

  • make ESM tracking info message less verbose
  • add typings for loaders

v5.36.2

Compare Source

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.clean is against this assumption
    • It fixes a bug where assets are missing, when removed and readded to the compilation
  • fix a problem when chained dependOn, which causes too many modules being included in entrypoints

v5.36.1

Compare Source

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

Compare Source

Features

  • add support for class fields (stage 4)

Performance

  • improve (de)serialization performance of dependency locations

v5.35.1

Compare Source

Bugfixes

  • fix an __webpack_exports__ is not defined error 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

Compare Source

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.allowCollectingMemory which controls that. For one-off builds you probably want allowCollectingMemory: false and for watch builds you probably want allowCollectingMemory: true. It defaults to false in production mode and true in development mode.

v5.34.0

Compare Source

Features

  • add support for empty string in resolve.extensions and handle them in this order
  • add pnpapi as builtin external when using target: "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

Compare Source

Bugfix

  • handle falsy entry options correctly

v5.33.1

Compare Source

Bugfix

  • fix passing publicPath to this.importModule

v5.33.0

Compare Source

Features

  • adds support for specifying a publicPath per entrypoint
    • add entry.xxx.publicPath option

Bugfix

  • disable injection of chunk loading logic for executeModule

Performance

  • performance improvements for export * and reexports

v5.32.0

Compare Source

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

Bugfixes

  • fixes incorrect cache invalidation when new properties are added to the DefinePlugin

Experiments

  • add experiments.executeModule to allow build-time execution of modules of the module graph
    • add this.importModule(request, options, [callback]): Promise to the loader context
    • add compilation.executeModule(request, options, callback) for plugins

v5.31.2

Compare Source

Bugfixes

  • revert disposing of CodeGenerationResults since some plugins rely on the fact that they are still accessible after the compilation

v5.31.1

Compare Source

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

Compare Source

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 exports field 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

Compare Source

Features

  • add GC to memory cache
    • opt-in via cache.maxGenerations when cache.type: "memory"
    • default for cache.type: "filesystem" and mode: "development"
    • configure via cache.maxMemoryGenerations when cache.type: "filesystem"
    • Generations = Rebuilds
  • 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

Compare Source

Bugfixes

  • fix some edge cases for splitChunks.maxSize which cause too large chunks to be created
  • add stats.groupModulesByType to the schema

Developer Experience

  • add resolving trace for error during resolving build dependencies
  • expose Stats-related types
  • exports AsyncDependenciesBlock and Module/Const/NullDependency on the API

v5.28.0

Compare Source

Features

  • add module.generator.asset.publicPath to 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

Compare Source

Bugfixes

  • fix error reporting when errors happen in beforeLoaders hook
  • avoid crash when experiments.lazyCompilation is used (regression)
  • fix lazy compilation opt-out when HMR accept/decline is used on an import()
  • fix new URL(new URL generated by worker handing

v5.27.1

Compare Source

Bugfix

  • allow invalidation after first watch run in MultiCompilers

v5.27.0

Compare Source

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 imports field 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

Compare Source

Bugfix

  • fix race condition in MultiCompiler queueing

v5.26.2

Compare Source

Bugfixes

  • fix problem with new line after comment
  • fix assign libraries with runtime chunk

v5.26.1

Compare Source

Bugfixes

  • avoid using strict mode runtime for assign libraries to allow assigning not existing variables
  • avoid collision with Set.addAll polyfill
  • allow filenames starting with ../ when generation the undo path for non-web targets

v5.26.0

Compare Source

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

Compare Source

Bugfixes

  • fix startup logic when non-js chunks are in the entrypoint
  • remove type: "module" for Workers when generating classic scripts

v5.25.0

Compare Source

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.strictModuleErrorHandling to 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.emit option 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.maxSize where negative indicies are accessed
  • fix sub-optimal splitting of splitChunks.maxSize in 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

Compare Source

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

Compare Source

Bugfixes

  • fix contenthash when a file is emitted twice with different filenames but that same contenthash

v5.24.2

Compare Source

Bugfixes

  • fix invalid syntax generated for destructuring with default values
  • fix some incorrect properties accesses in watch
    • modifiedFiles and removedFiles were undefined
  • fix some edge cases with MultiCompiler

v5.24.1

Compare Source

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

Compare Source

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 Watching type

Contribution

  • fix husky setup

Performance

  • improve performance of module concatenation

v5.23.0

Compare Source

Features

  • add parserOptions.url: "relative" option
    • Allows to generate relative URLs from new URL (e. g. for SSG/SSR)

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

Compare Source

Features

  • generate shorter output code for JSON data by using a '...' string instead of "..." (only affects output side when not minimized)
  • the dependencies configuration option now works for watch builds too
    • It will build compilation when any of dependencies has changed
    • It will wait for compiling until all of dependencies have finished
  • add parallelism config 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 ./
  • when all modules of an entrypoint fail resolving and another entrypoints depend(s)On it, 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 define for local modules and arrow functions are supported
  • fix missing runtime requirement for system.js context
  • fix parsing of define function, 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 declaration const 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

v5.21.2

Compare Source

Bugfixes

  • json with constructor property now caches correctly
  • json generation with object prototype property now works correctly
  • tree shaking json array when accessing length property now works correctly
  • fix incorrect call context when calling properties on imports from CommonJS modules

v5.21.1

Compare Source

Bugfixes

  • fix a crash when using colors in stats

v5.21.0

Compare Source

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.errorDetails to "auto" when using toString
  • Highlight important text in error message with colors
    • e. g. Did you mean ...? and similar hints are shown in green

v5.20.2

Compare Source

Bugfixes

  • fix caching issue with asset modules causing undefined files
  • fix problem that rebuildModule doesn't follow dependencies

v5.20.1

Compare Source

Bugfix

  • fix Caching failed for pack: RangeError [ERR_OUT_OF_RANGE] warning when serializing the cache

v5.20.0

Compare Source

Features

  • add experiments.lazyCompilation.imports to disable lazy compilation of import()s
  • add experiments.lazyCompilation.test to allow custom selection of modules that should be lazy compiled
  • When using profile: true resp. --profile webpack will now print a summary of expensive modules or loaders

Bugfixes

  • fix that experiments.lazyCompilation.client now works as intended
  • fix a bug which causes runtime requirements to be missing e. g. __webpack_require__ is not defined

Developer Experience

  • expose EntryObject type in typings
  • remove pkg-dir dependency

v5.19.0

Compare Source

Features

  • allow to set chunk name for exposes for ModuleFederationPlugin

Bugfixes

  • add a missing simicolon in runtime code
  • improve consistency of top level await with other implementations and the spec
  • make options for ProgressPlugin optional in typings

Performance

  • try to avoid unnecessary allocations

v5.18.0

Compare Source

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

v5.17.0

Compare Source

Features

  • add experimental lazy compilation via experiments.lazyCompilation: true for web and node targets
    • compiles entrypoints and import()s only when they are accessed
    • More details see: https://github.com/webpack/webpack/pull/12469
    • Known issues: webpack-dev-server/webpack serve opening an entrypoint for the first time, sometimes need a manual refresh.
  • move some javascript parsing related configuration options from module to module.parser.javascript and also allow to set them via module.rules
  • add module.parser.javascript.commonjsMagicComments to enable /* webpackIgnore: true */ for require() calls

Bugfixes

  • fix a problem with webpack.debug.ProfilingPlugin on Mac when the computer was suspended before.
  • fix a bug with IIFE handling when the IIFE has parameters with default values

v5.16.0

Compare Source

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.innerGraph for new 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: true with optimization.runtimeChunk
  • fix a bug that splitChunk.reuseExistingChunk doesn'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

Compare Source

Features

  • add getResolve method to data object when using function externals
  • externals function may return a promise now

Bugfixes

  • fix define("local-module", expr) generating invalid syntax
  • fix resolving bug when resolving build dependencies
  • add chunkModulesSpace to schema
  • fix rebuildModule api

Performance

  • improve performance of build dependencies resolving

v5.14.0

Compare Source

Features

  • add experimental ESM tracking for build dependencies

Bugfixes

  • fix crash when calling watcher.getContextTimeInfoEntries()
  • make filesystem types compatible with memfs and real fs
  • fix rebuild error when using the AutomaticPrefetchPlugin

Contribution

  • improve type definitions by using typescript 4.2

v5.13.0

Compare Source

Features

  • add resolve.preferAbsolute flag for compatibility with webpack 4
  • add support for wildcards in exports and imports field
  • 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

v5.12.3

Compare Source

Bugfixes

  • upgrade @webassembly/* and terser-webpack-plugin dependencies

v5.12.2

Compare Source

Bugfixes

  • fix problem with typings in strict mode

v5.12.1

Compare Source

Bugfixes

  • fix a crash in ConcatenatedModule when deserializing
  • fix some not serializable warnings
  • show error when using an invalid identifier as var library

v5.12.0

Compare Source

Features

  • add experiments.layers
    • entry.xxx.layer: "name-of-layer" allows to set the layer for an entrypoint
    • module.rules[].issuerLayer: RuleCondition allows to filter/match by layer of issuer
    • module.rules[].layer: "name-of-layer" allows to set the layer of an module
    • splitChunks.cacheGroups.xxx.layer allows 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
    • externals function has an additional argument property contextInfo which contains info about the issuer (e. g. the layer)
  • add module.parser and module.generator options to allow to specify parser/generator options globally per module type
  • make chunkId variable 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.nestedModulesSpace to schema to allow to specify this option
  • fix a bug that incorrectly replaces new.target with constants
  • fix a bug where splitChunk minSize is not handled correctly
  • fix a bug where the order of splitChunk cacheGroups is 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

Compare Source

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 object types in typings
  • expose more types regarding Stats

v5.11.0

Compare Source

Features

  • update typings to include undefined/null types (for strict type)
  • export WebpackError
  • export Asset and AssetInfo types
  • allow error configuration for validateSchema function

Bugfixes

  • fix typings for SourceMapSource
  • allow custom properties in AssetInfo
  • handle undefined values for rule conditions like empty strings

v5.10.3

Compare Source

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

Compare Source

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

Compare Source

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 processAssets with additionalAssets
  • add missing \ in module info header comment

v5.10.0

Compare Source

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: true is cached
  • avoid assets and module stats information generation when they are cached and cached assets/modules are not shown

v5.9.0

Compare Source

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 ...

v5.8.0

Compare Source

Features

  • add the ability to process assets generated in later stages during processAssets
  • new processAssets stage: MROCESS_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

Compare Source

Features

  • CLI supports installing webpack-cli via pnpm

Bugfixes

  • fix problem with ASI detection, causing semicolons inserted after if(...) etc.

v5.6.0

Compare Source

Bugfixes

  • emit warnings/errors for exports in commonjs modules for which we know that they don't exist

v5.5.1

Compare Source

Bugfixes

  • fix crash when __esModule is defined with defineProperty without value

v5.5.0

Compare Source

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 __esModule flag consistent exposed
    • handle non enumerable exports
    • handle inherited exports
    • handle exported Promises

v5.4.0

Compare Source

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

Compare Source

Bugfixes

  • runtime-dependent concatenated modules can generate code for runtime-dependent execution order of concatenated modules

v5.3.1

Compare Source

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

Compare Source

Features and Bugfixes

  • generate runtime conditional code when modules are forcefully merged from multiple runtimes
    • This fixes a Cannot read property 'call' of undefined error in webpack runtime, because modules are used that are not in the graph in one runtime
  • 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

Compare Source

Bugfixes

  • add watchOptions.followSymlinks option 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

Compare Source

Features

  • add sourceFilename and javascriptModule to asset info for plugins

Bugfixes

  • fix variable name collision when using module concatenation
  • fix arrow functions in ie 11
  • fix this externals with module concatenation
  • force update for enhanced-resolve for critical bugfixes (see changelog)

v5.1.3

Compare Source

Bugfixes

  • omit unused modules from chunks when modules are only unused in some runtimes
    • fixes Self-reference dependency has unused export name error
  • fix order of asset optimization to fix conflict between compression-plugin and real hash plugin

v5.1.2

Compare Source

Bugfixes

  • revert: omit unused modules from chunk when modules are only unused in some runtimes
    • caused issues with mini-css modules

v5.1.1

Compare Source

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 name error
  • fix hanging production builds because of infinite loop in inner graph optimization
  • Compilation.deleteAsset updates chunk to file mappings

v5.1.0

Compare Source

Features

  • expose webpack property from Compiler
  • expose cleverMerge, EntryOptionPlugin, DynamicEntryPlugin

Bugfixes

  • missing require("..").xxx in 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

Compare Source

Announcement and changelog


Configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about these updates again.


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

This MR has been generated by Renovate Bot.

Edited by Renovate Bot

Merge request reports