Skip to content

chore(deps): update dependency webpack to v5

HTML-validate 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.23.0

Release Notes

webpack/webpack

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: #​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


Renovate 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 this update again.


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

This MR has been generated by Renovate Bot.

Edited by HTML-validate

Merge request reports