chore(deps): update dependency webpack to v5
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
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
Performance
- split fresh created persistent cache files by time to avoid creating very large files
v5.52.0
Feature
-
experiments.executeModule
is 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 link
ing 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.addModuleChain
andCompilation.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.buildHttp
to buildhttp(s)://
imports instead of keeping them external- keeps a
webpack.lock
file with integrity andwebpack.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 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.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
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.reasonsSpace
andstats.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
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
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
Features
- add support for
output.module
+optimization.runtimeChunk
Bugfixes
- fix inline externals with dash in type
v5.43.0
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
Bugfixes
- fix crashes when rebuilding with
jsonData
ordataUrl
of undefined
v5.42.0
Features
- add cache compression via
cache.compression
- enable cache compression by default for non-development modes
Bugfixes
- add
node-commonjs
to schema forexternalsType
- 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
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.idleTimeoutAfterLargeChanges
to 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 Worker
etc. sets `type: "module"
-
v5.40.0
Features
- accept
node:
prefixed requests as node.js externals - avoid
instanceof Promise
in 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
Buffer
inthis.emitFile
typings (loader context) - improve
reset
cli 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.captureStackTrace
from 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[].scheme
as 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
,dependencies
andparallelism
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
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
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
- 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 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
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 wantallowCollectingMemory: false
and 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.extensions
and handle them in this order - add
pnpapi
as 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
publicPath
per entrypoint- add
entry.xxx.publicPath
option
- 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.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
- 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
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
Features
- add GC to memory cache
- opt-in via
cache.maxGenerations
whencache.type: "memory"
- default for
cache.type: "filesystem"
andmode: "development"
- configure via
cache.maxMemoryGenerations
whencache.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.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
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
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
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
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
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.addAll
polyfill - 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.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
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
-
modifiedFiles
andremovedFiles
were 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
Watching
type
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
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
- It will build compilation when any of
- 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
./
- resolving fails due to
- 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 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
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
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.errorDetails
to"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
undefined
files - 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.imports
to disable lazy compilation ofimport()
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
Features
- allow to set chunk name for
exposes
forModuleFederationPlugin
Bugfixes
- add a missing simicolon in runtime code
- improve consistency of top level await with other implementations and the spec
- make
options
forProgressPlugin
optional 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: 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.
- compiles entrypoints and
- move some javascript parsing related configuration options from
module
tomodule.parser.javascript
and also allow to set them viamodule.rules
- add
module.parser.javascript.commonjsMagicComments
to enable/* webpackIgnore: true */
forrequire()
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
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
fornew 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
withoptimization.runtimeChunk
- This allows to use
- 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
Features
- add
getResolve
method to data object when using functionexternals
-
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
Features
- add experimental ESM tracking for build dependencies
Bugfixes
- fix crash when calling
watcher.getContextTimeInfoEntries()
- make filesystem types compatible with
memfs
and realfs
- fix rebuild error when using the
AutomaticPrefetchPlugin
Contribution
- improve type definitions by using typescript 4.2
v5.13.0
Features
- add
resolve.preferAbsolute
flag for compatibility with webpack 4 - add support for wildcards in
exports
andimports
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
- use
v5.12.3
Bugfixes
- upgrade
@webassembly/*
andterser-webpack-plugin
dependencies
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
var
library
v5.12.0
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 propertycontextInfo
which contains info about the issuer (e. g. the layer)
-
- add
module.parser
andmodule.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
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
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
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
processAssets
withadditionalAssets
- 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: true
is 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:
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
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
__esModule
flag 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 undefined
error 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.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
Features
- add
sourceFilename
andjavascriptModule
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
Bugfixes
- omit unused modules from chunks when modules are only unused in some runtimes
- fixes
Self-reference dependency has unused export name
error
- 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 name
error
- fixes
- fix hanging production builds because of infinite loop in inner graph optimization
-
Compilation.deleteAsset
updates chunk to file mappings
v5.1.0
Features
- expose
webpack
property fromCompiler
- 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
Configuration
-
If you want to rebase/retry this MR, check this box.
This MR has been generated by Renovate Bot.