All Versions
32
Latest Version
Avg Release Cycle
29 days
Latest Release
332 days ago

Changelog History
Page 1

  • v5.0.0

    July 08, 2019

    🔋 Features

    🛠 Bugfixes

    • 🛠 fixes resolve.alias: { something: false } to ignore module
  • v5.0.0-beta.17

    June 03, 2020

    Known Problems

    • 🚀 The transitive move-file dependency requires node >= 10.17, while webpack is intended to be >= 10.13 compatible. This temporary increases the min node version for this beta release until we found a solution to that.
      • Fixed, latest patch releases are >= 10.13 compatible

    🔋 Features

    • Using module in an ESM no longer needs the whole namespace object
    • 0️⃣ SideEffects flag can follow reexports that are partially dynamic or use a compat default
    • 👍 export * uses more exports info data for better exports
    • 0️⃣ dynamic export * no longer flags the default export as maybe provided
    • 👍 allow module concatenation even when provided exports are unknown, but used exports are known
    • ➕ add promise external, which is like var but awaits the global value in a async module
    • ➕ add import external, which uses import() to load a native ESM
    • ➕ add output.importFunctionName to change the import() to something else, e.g. to a polyfill.
    • ✂ remove some unneeded dependencies
    • Module Federation
      • removed scope shortcut object config for container plugins (BREAKING)
      • add ability to pass advanced options to container plugins
      • allow to expose an array of modules (similar to entry)
      • allow to provide an array of remote locations (they act as fallback)
      • await when a promise is returned by the external
      • allow to expose an index module which is used when using the remote without subpath
      • change exposed keys to be prefixed with ./ (BREAKING)
      • automatically inferred keys do no longer omit leading non-word chars
      • add version handling to shared modules (see #10960 for details, BREAKING)

    🛠 Bugfixes

    • 0️⃣ export default no longer converts function declarations to expressions
    • inline external type can also provided when using an array external.
    • 🛠 fixed a bug in snapshotting that caused changes to be ignored during watching
    • ➕ add missing dependency for correct typings
    • Persistent Caching
      • DllPlugin related classes are now serializable
      • Dates are serializable

    🔄 Changes

    • 🔀 merged all asset processing hooks into a new hook processAssets with stages
    • 🗄 Modifications to compilation.asset after sealing are deprecated
  • v5.0.0-beta.16

    May 05, 2020

    🔋 Features

    🛠 Bugfixes

    • ♻️ refactor exports info logic for CommonJs exports
      • fixes a bug when using an export named default in CommonJs
    • record chunk id using chunk group name and index in it
      • fixes a bug when using HMR and split-chunked initial chunk
    • also set parents in module graph when using non-recursive module creation
      • fixes crash in harmony dependency when using this.loadModule with imports
    • 🛠 force upgrade terser-webpack-plugin for memory leak bugfix
    • 🛠 fix small non-monotony in the ProgressPlugin
    • track runtime modules that need a full hash and calculate it
      • fixes a bug where main.js is not updated on a HMR update
      • This caused that all previous HMR updates are applied on reload

    Contributing

    • ✅ CI tests node.js 14 instead of 13 now
    • ignore code coverage for timing dependent code

    Full Changelog

    Feedback

  • v5.0.0-beta.15

    April 21, 2020

    💥 Breaking Changes

    • generate and expose typescript typings from webpack

    🔋 Features

    • ➕ add API to generate and process CLI arguments targeting webpack configuration
    • add __system_context__ as context from System.js when using System.js as libraryTarget
    • ➕ add module.hot.invalidate() API to trigger an additional hot update of this module
    • ➕ add bigint support for the DefinePlugin
    • ➕ add bigint support for basic evaluations like maths

    🛠 Bugfixes

    • 🛠 fix a ReferenceError: xxx is not defined where some pure expression where not be removed from the code
    • 🛠 fix handling of extends in class when class is unused
    • 🛠 fix incorrect schema validation for Rule conditions (include, exclude and test are not valid here)
    • 🛠 fix some spelling issues
    • ➕ add space between value and unit in output
    • 🛠 fix generated code when using the DefinePlugin with -0
    • Exports from System.js externals behave correctly as ESM now

    👌 Improvements

    • ✂ remove some duplication info in seralization
    • 👉 make descriptions in schema more consistent in formating

    Internal

    • ➕ add spellcheck to CI

    Full Changelog

    Feedback

  • v5.0.0-beta.14

    March 02, 2020

    🔄 Changes

    • 0️⃣ optimization.sideEffects, optimization.innerGraph and optimization.usedExports are on by default now (only production before)
      • Motivation: less difference between prod and dev builds, getting sideEffects benefits in dev mode.
    • 🔌 EnvironmentPlugin shows an error now when referenced env variable is missing and has no fallback
      • Motivation: Builds should fail when an expected env variable is missing
    • ✂ Remove serve property from schema
      • Motivation: No longer needed, as this has move to a plugin
    • 🔀 merge all library related options into output.library
      • output.library: { type, name, export, auxiliaryComment, umdNamedDefine }
      • old options are still possible, but no longer recommended
      • Motivation: more clear structure, easier sharing with library in the entry option

    🔋 Features

    • 👍 Allow a entry description object for advanced entrypoint configuration
      • entry: { main: { ... } }
      • import: list of modules
      • filename: custom filename template
      • Using output.chunkFilename is no longer recommended and only output.filename should be used now
      • dependOn: list of other entrypoint which are expected to be available on page
      • library: library exposing
    • ➕ add percentBy option to ProgressPlugin to change percent calculation
    • 🔌 DefinePlugin supports arrays directly now
    • 🔀 sync wasm support v128 now
    • ⚡️ Update PnP support to pnp version 3 (yarn berry)
    • ➕ add output.uniqueName option
      • defaults to the package.json name in the current directory
      • affects globals used for chunk communication e. g. output.jsonpFunction

    DX

    • 👉 Make Compiler/Compilation.cache property read-only to make it easier to fix compat issues
    • 🏗 ProgressPlugin stores and restores counts from last build to persistent cache for better progress calculation
    • ➕ Add Did you mean to error message for some common configuration mistakes

    🛠 Bugfixes

    • 🛠 fix infinite loop when using export * in a circular way
    • CLI has non-zero exit code when stdin is not available to ask for webpack-cli installation
    • hoist exports in concatenated modules
      • fixes bug with circular dependencies with non-concatenated modules
    • generate valid syntax for the injected error code when modules are not found

    ♻️ Refactoring

    • ♻️ Internal refactoring of the inner graph API
    • ♻️ The way the default webpack configuration is created has been refactored
      • New process: 1. configuration is normalized, 2. Plugins are applied, 3. configuration defaults are set
      • This allows plugins to apply their own configuration defaults.
      • This allows to write Configuration Preset Plugins.
    • ♻️ refactor the way library exposing is handled

    🐎 Performance

    • 🌲 Increase the time logging of the core when using verbose logging
    • 🐎 Performance improvements
      • Chunk Graph
      • Persistent Caching
      • SplitChunks
      • Chunk

    Full Changelog

    Feedback

  • v5.0.0-beta.13

    January 29, 2020

    🔋 Features

    • this.getOptions in loader context
      • optionally takes a schema for validation
      • see #10017 for more information
    • Persistent Cache storage has been improved
      • Multiple files instead of one big file. Separate files are created when cache items are unused or unchanged, while trying to keep each file > 1MB
    • 👍 generator.filename support for type: "asset"/"asset/resource"

    🛠 Bugfixes

    • 🛠 fix ident handling for Rule.options
    • 🛠 fix handling of watchOptions.aggregateTimeout: 0
    • 🛠 fix default for output.hotUpdatefunction/jsonpFunction/chunkCallbackName when output.library is an array
    • 🛠 fix target: "node" chunk loading when output files are in different folders
    • disable constant evaluation in "use asm" code
    • 🛠 fix bug with variable renaming in concatenated modules introduced in 5.0.0-beta.11

    Full Changelog

    Feedback

  • v5.0.0-beta.12

    January 16, 2020

    🛠 Bugfixes

    • 🖐 handled sourceRoot in SourceMaps from modules/loaders
    • 👉 make order of exports in hashing deterministic to fix a hash change on recompilation
    • generate async module code correctly even when no await is used, but other async module is imported
    • 🔌 flag all modules as used when using DllPlugin with entryOnly: false
    • 🛠 fix a race condition in the persistent cache where the cache file is persisted twice in parallel
    • ⬆️ upgrade watchpack for incorrectly emitted change events and wrong timestamps
    • 🛠 fix string/number formatting inconsistency in HMR output files
    • /*# __PURE__ */ is applied to function calls when doing innerGraph analysis

    🔄 Changes

    • 🔄 change the default of entryOnly of the DllPlugin to true
    • ✂ remove special request shortening logic and use single relative paths for readable module names

    🔋 Features

    • 👍 allow webpack:// urls in SourceMaps to provided paths relative to webpack root context
    • ⚠ show all possible exports in the warning/error when export was not found or name is incorrect
    • treat sequence expression, function and class expressions as pure for innerGraph analysis

    Full Changelog

    Feedback

  • v5.0.0-beta.11

    December 24, 2019

    🛠 Bugfixes

    • 👉 show error when mimetype is missing for type: "asset"
    • 🛠 fix parsing of requires with nesting require("x").fn(require("x"))

    👌 Improvements

    • 📇 rename symbols less often in concatenated modules

    Full Changelog

    Feedback

  • v5.0.0-beta.10

    December 22, 2019

    🔋 Features

    • Concatented modules are persistent cacheable now
    • ➕ add an explanation comment to eval-based devtools about readablilty of output files
    • 👌 improved profiling mode of progress to display timings per plugin and substep

    🛠 Bugfixes

    • 🛠 fix a no ChunkGraph assigned crash when using HMR and the mini-css-extract-plugin
    • bailout inner graph optimization when a module uses eval()
    • detect a cycle in this.loadModule and show error in this case
    • 👍 allow mangle even if object prototype export names are used
    • prevent mangling for object prototype export names in CommonJS
    • only treat Object.defineProperty for top-level this as export
    • replace Object.defineProperty correctly when value is in brakets

    🐎 Performance

    • ➕ add in-memory cache for wrapper code of module factories

    🗄 Deprecations

    • 🗄 deprecate using string loader option in config
      • prefer passing an object to options

    Internal

    • ♻️ refactor prefetch/preload logic into separate plugin to be reusable for other module types

    Full Changelog

    Feedback

  • v5.0.0-alpha.23

    August 27, 2019

    🚀 (based on 4.39.3)

    🔋 Features

    • ➕ add option output.ecmaVersion to specify level of generated code emitted by webpack
      • By using arrow functions we can emit smaller code, i. e. for exports
      • By using const variables we can emit more correct code for export default

    🔄 Changes

    • 0️⃣ (BREAKING) changed default of output.ecmaVersion from implict 5 to 2015
      • This might be incompatible with some older browser.
      • If you need support for these browser use output.ecmaVersion: 5.

    Full Changelog

    Feedback