webpack

A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.

Showing:

100 Versions

5.52.1

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

5.52.0

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

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

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

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

5.50.0

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

5.49.0

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

5.48.0

Features
  • enable import assertions again
Bugfixes
  • upgrade webpack-sources for fixes regarding source maps
  • fix infinite loop in HMR runtime code

5.47.1

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

5.47.0

Performance
  • improve source-map performance
Bugfixes
  • avoid unnecessary "use strict"s in module mode

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

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

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

5.44.0

Features
  • add support for output.module + optimization.runtimeChunk
Bugfixes
  • fix inline externals with dash in type

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

5.42.1

Bugfixes
  • fix crashes when rebuilding with jsonData or dataUrl of undefined

5.42.0

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

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

5.41.0

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"

5.40.0

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

5.39.1

Bugfixes
  • reduce memory usage and fix memory leaks

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

5.38.1

Performance
  • fix missing increment in sorting optimization from last release

5.38.0

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

5.37.1

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

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

5.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
  • fix a problem when chained dependOn, which causes too many modules being included in entrypoints

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

5.36.0

Features
  • add support for class fields (stage 4)
Performance
  • improve (de)serialization performance of dependency locations

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

5.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 want allowCollectingMemory: false and for watch builds you probably want allowCollectingMemory: true. It defaults to false in production mode and true in development mode.

5.34.0

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

5.33.2

Bugfix
  • handle falsy entry options correctly

5.33.1

Bugfix
  • fix passing publicPath to this.importModule

5.33.0

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

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

5.31.2

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

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

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

5.30.0

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

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

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

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

5.27.1

Bugfix
  • allow invalidation after first watch run in MultiCompilers

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

5.26.3

Bugfix
  • fix race condition in MultiCompiler queueing

5.26.2

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

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

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

5.25.1

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

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

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

5.24.3

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

5.24.2

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

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

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

5.23.0

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

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

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

5.21.1

Bugfixes
  • fix a crash when using colors in stats

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

5.20.2

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

5.20.1

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

5.20.0

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

5.19.0

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

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

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

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

5.15.0

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

5.14.0

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

5.13.0

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

4.46.0

Bugfixes
  • fix behavior of defaults for resolve.roots to be backward-compatible

5.12.3

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

5.12.2

Bugfixes
  • fix problem with typings in strict mode

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

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

4.45.0

Features
  • resolve server-relative requests relative to project context by default
Bugfixes
  • fix a bug where splitChunk minSize is not handled correctly
  • fix a bug where the order of splitChunk cacheGroups is not handled correctly

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

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

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

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

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

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

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

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

5.7.0

Features
  • CLI supports installing webpack-cli via pnpm
Bugfixes
  • fix problem with ASI detection, causing semicolons inserted after if(...) etc.

5.6.0

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

5.5.1

Bugfixes
  • fix crash when __esModule is defined with defineProperty without value

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

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

5.3.2

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

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

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

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

5.2.0

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)

5.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
  • fix order of asset optimization to fix conflict between compression-plugin and real hash plugin

5.1.2

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

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

5.1.0

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