All Versions
76
Latest Version
Avg Release Cycle
3 days
Latest Release
1223 days ago

Changelog History
Page 5

  • v5.0.0-beta.19 Changes

    June 29, 2020

    ๐Ÿ”‹ Features

    • ๐Ÿ‘ Data Uri are now supported
      • application/json, text/javascript, application/javascript, application/node, application/wasm are supported by default as mimetype
      • added Rule.mimetype to match mimetype in rules
    • ๐Ÿ‘ [Node Chunk Loading] support runtime and entries being in different chunks (e. g. with runtimeChunk single)
    • 0๏ธโƒฃ [splitChunks] defaults for splitChunks.maxAsyncRequests and splitChunks.maxInitialRequests has been increased to 30

    ๐Ÿ›  Bugfixes

    • ๐Ÿ— [Chunk Loading] fix a race condition with chunk loading with multiple webpack builds on a single page with overlapping chunk ids (since beta.18)
      • data-webpack has now a output.uniqueName + ":" prefix
      • data-webpack is not used when no output.uniqueName is specified
    • ๐Ÿ“œ [HMR] callback function in module.hot.accept is now parsed
    • [splitChunks.maxSize] chunks are not unnecessary renamed when not splitted at all
    • [splitChunks.maxSize] no longer generates filenames that only differ in casing
    • ๐Ÿ— [Module Federation] providing modules now also works in incremental builds
    • [Normalization] stats: true now normalizes to stats: { preset: "normal" }
    • ๐Ÿฑ [Stats] fixed as incorrectly inserted new line in the assets table
    • [Jsonp Chunk Loading] fix a problem with non-js chunk in the entrypoint

    ๐Ÿ”„ Changes

    • ๐Ÿ“‡ rename output.jsonpScriptType to output.scriptType as it's now also used for other things than jsonp (e. g. script externals)

    ๐ŸŽ Performance

    • ๐Ÿ‘Œ improvements in SplitChunksPlugin

    Contributing

    • yarn lockfile is now deduplicated and checked by CI
  • v5.0.0-beta.18 Changes

    June 17, 2020

    ๐Ÿ”‹ Features

    • โž• add script external type, which allows to load a global from a script tag
    • ๐Ÿ‘ allow entry: {} for no entries
    • ๐Ÿ‘ allow magic comment in import() for used exports
      • /* webpackExports: "default" */
      • /* webpackExports: ["named", "default"] */
    • โž• add support for the "exports" field in package.json
    • โž• add resolve.restrictions to restrict the paths a request can resolve to
    • ๐Ÿ”Œ ModuleFederationPlugin
      • change defaults to use script as remoteType by default
      • for module requests in shared (like shared: ["package", "package/sub/path"])
      • this will apply only the references to modules that match this shared module
      • requiredVersion will be extracted from package.json of the consumer automatically
        • new packageName option allow to choose the package name for the dependencies lookup (or dev/peer/optionalDependencies)
        • requiredVersion: false allows to disable this
      • This means webpack will look for cases in your source code where your are using something like import "package". The next package.json for the referencing module is used to determine a requiredVersion. The resolved result will be provided as shared module in the version of the package.json at the resulting location.
      • for relative requests in shared (like shared: ["./relative/path"])
      • will resolve relative to context
      • doesn't depend on usage in the build. Always provided.
      • do not use a requiredVersion by default. Only when specified or packageName is specified.
      • This means webpack will resolve the relative request and provide the result as shared module in the version of the next package.json found at the location of the result. All requests resolving to the same file location will consume the shared module without any required version check.
      • module requests with tailing / in shared (like shared: ["package/"])
      • will match all module request with this prefix
      • otherwise behave like normal module requests

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix a bug in HMR runtime code that causes a crash with Cannot read property 'hot' of undefined.
  • v5.0.0-beta.17 Changes

    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 Changes

    May 05, 2020

    ๐Ÿ”‹ Features

    • โž• added experimental "Module Federation" - a way to load modules from separate builds into one application
    • ๐Ÿ‘Œ improve error messages when wasm experiments are disabled
    • ๐Ÿ”ฆ expose some webpack options types in typings
    • โž• added more details to ProgressPlugin

    ๐Ÿ›  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 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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