Skip to content
This repository has been archived by the owner on Dec 20, 2023. It is now read-only.

chore(deps): update dependency webpack to v5 (master) #105

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

appcues-wss[bot]
Copy link

@appcues-wss appcues-wss bot commented Oct 31, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
webpack ^1.15.0 -> ^5.0.0 age adoption passing confidence

By merging this PR, the below vulnerabilities will be automatically resolved:

Severity CVSS Score CVE
Critical Critical 9.8 CVE-2018-3750
Critical Critical 9.8 CVE-2021-44906
Critical Critical 9.8 CVE-2023-45311
High High 8.6 CVE-2021-37701
High High 8.6 CVE-2021-37712
High High 8.6 CVE-2021-37713
High High 8.1 CVE-2021-32803
High High 8.1 CVE-2021-32804
High High 7.5 CVE-2018-20834
High High 7.5 CVE-2019-13173
High High 7.5 CVE-2020-28469
Medium Medium 5.6 CVE-2020-7598

Release Notes

webpack/webpack (webpack)

v5.0.0

Compare Source

Announcement and changelog

v4.47.0

Compare Source

New Features

New Contributors

Full Changelog: webpack/webpack@v4.46.0...v4.47.0

v4.46.0

Compare Source

Bugfixes

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

v4.45.0

Compare Source

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

v4.44.2

Compare Source

Bugfixes

  • make sure to generate correct chunk connection for blocks that are only connected in some runtimes
    • fixes a bug where filename contains undefined hash at runtime

v4.44.1

Compare Source

Bugfixes

  • fix bug in sideEffects optimization when using export * from "non-esm" and a default export.
  • add missing optional peerDependencies for webpack-cli and webpack-command to support Yarn 2

v4.44.0

Compare Source

Features

  • Improve sideEffects flag behavior when dynamic modules are part of the tree
    • Fixes a bug which causes empty modules (or type-only modules) to "break" Tree Shaking
  • add splitChunks.enforceSizeThreshold to allow enfore splitting larger chunks unrelated from other limiations
    • Not set by default to avoid breaking change
    • It will be set by default to 50k in webpack 5
    • It's recommended to set it in webpack 4 too
  • add support for resolve.roots and default resolve.roots: [context]
    • This allows to resolve server-relative urls (e.g. /src/abc) to the project root (or other locations when configured)
    • This allows to use loaders that rely on that behavior

Bugfixes

  • fix bug where splitChunks produced non-optimal results when minSize is set to 0
    • This lead to NaNs in some places which breaks ordering
  • Fix bug which lead to HMR not working for splitChunks in entrypoints
  • force update watchpack and chokidar for chokidar bugfix which causes files to stop being watched

v4.43.0

Compare Source

Features

  • add module.hot.invalidate() to HMR API

Dependencies

  • push versions for forced security updates

v4.42.1

Compare Source

Bugfixes

  • update webassemblyjs dependencies for instruction update
  • update mkdirp dependency for security reasons

v4.42.0

Compare Source

Bugfixes

  • Disable constant replacements in "use asm" scope
  • Update schema to disallow functions for output.hotUpdateChunkFilename as this doesn't work
  • Hoist exports in concatenated module to handle circular references with non-concatenated modules correctly
  • Flag all modules as used in DLLs to fix missing exports

v4.41.6

Compare Source

Bugfixes

  • Windows network paths are considered as absolute paths
  • fix hanging of FlagDependencyExportsPlugin when using export * in a circular matter

v4.41.5

Compare Source

Bugfixes

  • handle relative paths with webpack:// prefix in SourceMaps correctly
  • fixes a non-determinism about providedExports with export * which caused changing module hashes and unnecessary HMR invalidation

v4.41.4

Compare Source

Bugfixes

  • fix case where __webpack_require__.e is not a function when using module concatenation
  • fix incorrect imported module when using sideEffects in a certain constellation of export names

Performance

  • lazy-require Webassembly related modules for improved startup performance

v4.41.3

Compare Source

Security

  • force upgrade terser-webpack-plugin dependency for security fix (not affecting webpack)

Funding

  • add npm funding field to package.json

v4.41.2

Compare Source

Bugfixes

  • fix issue with invalide timezone

v4.41.1

Compare Source

Bugfixes

  • fix incorrect request shortening when directory looks similar to parent directory
  • fix crash when timezone is unknown

v4.41.0

Compare Source

Developer Experience

  • disallow cache group named test with shorthand syntax to point out a potential config error

Performance

  • Improve performance of LimitChunkCountPlugin

v4.40.3

Compare Source

Bugfixes

  • fix a bug that the HMR plugin affected child compilations

Performance

  • improve performance of splitChunks name option by caching hashed value
  • improve rebuild performance by caching module size computation

v4.40.2

Compare Source

Bugfixes

  • fix a bug where asset is undefined

v4.40.1

Compare Source

Bugfixes

  • convert "multiple assets emit to the same filename" error into a warning
  • compare asset content when multiple assets emit to the same filename

v4.40.0

Compare Source

Features

  • adds asset info for emitted assets
    • new methods allow easy emitting/updating of assets compilation.emitAsset/updateAsset (instead of accessing the Object compilation.assets)
    • new getter methods to get assets compilation.getAssets() and compilation.getAsset(name)
    • 3 flags in asset info:
      • immutable: when set an asset can be cache infinitely
      • development: when set an asset is some kind of development tool (i. e. a SourceMap)
      • hotModuleReplacement: when set an asset is generated for an hot update
    • Stats expose info object in assets
    • String version of Stats show flags

v4.39.3

Compare Source

Bugfixes

  • fix a missing module in chunk caused by incorrect chunk graph generation of async chunks

v4.39.2

Compare Source

Bugfixes

  • fix ProfilingPlugin not ending traces correctly

v4.39.1

Compare Source

Bugfixes

  • fix problem that progress lines were too long on some terminals
  • fix a problem that ...100% is displayed instead of 100%

v4.39.0

Compare Source

Features

  • Infrastructure logger for node.js has now colors + symbols to mark different kind of messages
  • Logger API has now a status method which allows to write temporary status messages
  • ProgressPlugin default handler uses the Infrastructure Logger status message to output messages
  • Placeholders in paths can now be escaped with i. e. [\id\]
  • Compiler.hooks.assetEmitted have been added to get byte content of emitted assets

Bugfixes

  • Logging output is now aligned to have space for symbols
  • renamed Compiler.hooks.infrastructurelog to Compiler.hooks.infrastructureLog
  • Properties that are defined on the Object.prototype can now be chunk ids (i. e. constructor)
  • library.name now supports placeholders in libraryTarget: "system"
  • 2 places were module profiles were incorrectly captured were fixed

Dependencies

  • Forced upgrade of all direct dependencies
  • webpack-sources + terser-webpack-plugin comes with quality optimizations for SourceMaps

v4.38.0

Compare Source

Performance

  • Improved performance of ProgressPlugin
  • Improved performance of chunk graph generation
    • This can boost performance when many chunks are used, especially incremental build performance
    • Modules from parent chunks are now tracked during chunk graph generation, which allows to skip these modules in async chunks. This often renders optimization.removeAvailableModules unneeded, expect in scenarios where chunks are merged during optimization.
  • optimization.removeAvailableModules is now disabled in development mode by default
    • optimization.removeAvailableModules will be disabled for all modes in next major release, feel free to disable it in production too if you want extra performance.

v4.37.0

Compare Source

Features

v4.36.1

Compare Source

Bugfixes

  • fix regression in 4.36.0 when using happypack

v4.36.0

Compare Source

Features

  • SourceMapDevToolPlugin append option now supports the default placeholders in addition to [url]
  • Arrays in resolve and parser options (Rule and Loader API) support backreferences with "..." when overriding options.

v4.35.3

Compare Source

Bugfixes

  • update acorn to include import()

Performance

  • Improved runtime performance for large JSON modules

v4.35.2

Compare Source

Bugfixes

  • realResource must match absolute paths

v4.35.1

Compare Source

Bugfixes

  • add realResource condition in rule to schema
  • fixes order of loaders when using a matchResource

v4.35.0

Compare Source

Features

  • ProgressPlugin limit output to column width in terminal
  • add Watching.suspend and Watching.resume
  • add splitChunks.automaticNameMaxLength and splitChunks.cacheGroups[x].automaticNameMaxLength

Bugfixes

  • webworker target now respect publicPath when loading chunks
  • holey arrays of configs will fail the validation

v4.34.0

Compare Source

Features

  • Error message when parsing fails shows used loaders now

Bugfixes

  • importing the namespace object from non-ESM (CJS) modules no longer leads to an warning
  • Error message in HMR logging works for Firefox too now
  • Parser understands block scoping now

v4.33.0

Compare Source

Features

  • add target: "electron-preload" for electron 5
    • renderer should use target: "web" in electron 5

Bugfixes

  • fix HMR rejection of removed and readded self-accepted modules

v4.32.2

Compare Source

Bugfixes

  • fix some weird schema validation messages
  • fix problem in production mode (sideEffects + concatenation) which caused reexported values to become undefined (bug since 4.32.0)

v4.32.1

Compare Source

Bugfixes

  • reverts some changes from 4.32.0 which accidentally disabled some CommonJs features when using node: false.

v4.32.0

Compare Source

Features

  • Added this.mode to the loader API, to allow loaders to choose defaults by mode similar to webpacks options
  • Stack Trace for Errors in rejected Promises from import() now includes the stack from where the import() was called

Bugfixes

  • The Parser can now analyse identifiers in rest patterns too
    • const { a, ...rest } = obj, where rest conflicts with an imported binding etc.
  • node: false now correctly disables __dirname and __filename too
  • __dirname and __filename now no longer evaluates to something when node: false or node.__file/dirname: false is set
    • if(__dirname !== "") is no longer replaced with if(true) in such scenarios
  • prefetching chunks is no executed after the initial module evaluation
    • This allows to override i. e. __webpack_public_path__ for prefetching too
  • fixes a runtime crash when using side-effect-free modules with the DllPlugin

Contribute

  • CI tests node.js 12 now too
  • webpack-bot now merges dependabot PRs automatically when status checks succeed

v4.31.0

Compare Source

Features

  • add errors-warnings stats preset

Bugfixes

  • allow top-level return in non-ESM modules

v4.30.0

Compare Source

Features

  • add amd: false to disable AMD support
  • Compilation.hooks.finishModules now also allows async plugins
  • add output.libraryTarget: "system" to compile for SystemJs environment

Bugfixes

  • fix generating a null id when concatenating an entry module in a different chunk
  • fix unneeded chunk references when splitting modules from chunks
  • fix parsing of function name in function scope

Performance

  • Lazy require some internal files
  • Faster way to generate function headers

Contributing

  • Run prettier on examples markdown

v4.29.6

Compare Source

Bugfixes

  • typeof __webpack_require__ and require.onError is no longer evaluated to undefined and evaluation is done at runtime instead.
  • this value in module.hot.accept with imported dependency is correctly preserved.
  • webassemblyjs updated to latest version

Contributing

  • added a linting step to ensure all dependencies resolve to npm modules

v4.29.5

Compare Source

Bugfixes

  • update @webassemblyjs to remove git dependency

v4.29.4

Compare Source

Bugfixes

  • update @webassemblyjs for bugfixes

v4.29.3

Compare Source

Bugfixes

  • fixes a bug where import() context uses __webpack_require__.e, but it is not in the runtime
  • WebpackErrors now console.log correctly in node > 10

v4.29.2

Compare Source

Internal changes

  • update dependencies

v4.29.1

Compare Source

Bugfixes

  • add missing __esModule flag when modules are concatenated, but without usage information

v4.29.0

Compare Source

Important Note for npm users

This release updates some dependencies, which may trigger a npm bug. See here for the webpack issue. The npm bug has been fixed, but a new npm version has not been released yet.

For workarounds see this comment.

Eventually the fix will be to upgrade npm once the bugfix is released.

Features

  • update acorn to v6
  • limit the number of in parallel written output files to 15
  • add output.futureEmitAssets which gives the emitting logic of webpack 5
    • assets are replaced with SizeOnlySources
    • reading assets after emitting is no longer allowed
    • This allows memory to be garbage-collected

v4.28.4

Compare Source

Bugfixes

  • ProfilingPlugin creates output path if not existing
  • fixed support for arrow function functions for optimization.minimizer
  • failed hooks is now also called when run() fails

v4.28.3

Compare Source

Bugfixes

  • ProfilingPlugin creates the output folder if necessary

v4.28.2

Compare Source

Bugfixes

  • fixes a crash when multiple IgnorePlugins are used

v4.28.1

Compare Source

Bugfixes

  • fix error in IgnorePlugin when no contextRegExp is passed

v4.28.0

Compare Source

Features

  • IgnorePlugin: checkResource has an additional context argument

Bugfixes

  • Injection of node.js globals has been disabled for .mjs files as it's crashing

v4.27.1

Compare Source

Bugfixes

  • v4.27.0 accidentially introduced a breaking change. This reverts the change and restores the original behavior for splitChunks enforce.

v4.27.0

Compare Source

Features

  • When using functions as plugins they are now also called with the compiler as parameter
    • This make it possible to use arrow functions as plugins
  • splitChunks.maxSize now emits a warning when minSize > maxSize
  • Loaders have now access to a getResolve method to create their own resolver function with custom options

Bugfixes

  • splitChunks.cacheGroups.xxx.enforce now behaves as documented and enforce chunk creation
  • splitChunks.cacheGroups.xxx.enforce now no longer deletes minSize for maxSize
  • fixes a bug where splitChunks cause cacheGroups to be incorrectly merged when using the same name
    • now conditions are considered per cacheGroup
    • the correct cache group comment is displayed in stats
  • fixes a bug which causes providedExports not to be updated on rebuilds when using export * from

v4.26.1

Compare Source

Bugfixes

  • fix a bug where splitChunks.maxSize causes a hanging build
  • fix a bug where splitChunks.maxSize crashes when minSize > maxSize
  • fix a edgecase where splitChunks.maxSize can cause chunks bigger than minSize
  • remove unnecessary code from global builtin

v4.26.0

Compare Source

Features

  • Switch from uglify-es to terser as default minimizer

Note: While they are officially backward-compatible, it can still happen that a new bugs occurs with terser, which break your production builds. Make sure to validate your production builds after upgrading to this version. (Note that it's always a good idea to test your output assets before deploying.)

If you want to report bugs to terser (https://github.com/terser-js/terser), please provide a minimal repro case with minimized and non-minimized code. You can configure webpack to generate non-minimized code in production mode by setting optimization.minimize: false. When reporting a bug to terser, best report a repro case which doesn't require running webpack and is reproducible with only the terser command line.

See optimization.minimizers configuration option to switch back to uglify-es or provide additional minimize options for terser.

v4.25.1

Compare Source

Bugfixes

  • fix replacement of compile-time constant expression when expression is a wrapped expression (string prefix and/or suffix).

v4.25.0

Compare Source

Features

  • add format option to DllPlugin to allow generating formated manifest json
  • add flags to ProgressPlugin to add and remove information
    • entrypoint counter was added, but disabled by default to avoid breaking change

Bugfixes

  • fix code generation for context dependencies when replacing compile-time constant expressions
  • disable the effect of the ProvidePlugin for .mjs

v4.24.0

Compare Source

Features

  • allow to pass no dependencies to DefinePlugin runtime value
    • DefinePlugin.runtimeValue(() => {...}, true) is always evaluated
  • add module argument to DefinePlugin.runtimeValue

Bugfixes

  • update webassemblyjs dependency
  • fix bug when using entry names that look like numbers with HMR

v4.23.1

Compare Source

Bugfixes

  • add space when replacing expression with constant
    • i. e. for code like return'development'===process.env.NODE_ENV&&'foo'

v4.23.0

Compare Source

Features

  • add watchMode flag to Compiler to be able to detect watch mode in plugins
  • Prefer chunk names of entrypoints when merging chunks
  • add removedFiles property to Compiler to detect removed files

Bugfixes

  • publish declarations to npm
  • upgrade @webassemblyjs/* for bugfix
  • fix crash when using a side-effect-free wasm module in production mode

Internal changes

  • test on node.js 12
  • fix memory leak in test suite

v4.22.0

Compare Source

Features

  • Add support for evaluating && and || expressions

Bugfixes

  • fix problems where order of things where not deterministic

Performance

  • improve performance of chunk graph creation
    • this will improve rebuild performance in watch mode

v4.21.0

Compare Source

Features

  • add output.libraryTarget: "amd-require" which generates a AMD require([], ...) wrapper instead of a define([], ...) wrapper
  • support arrays of strings passed to output.library, which exposes the library to a subproperty

Bugfixes

  • fix cases where __webpack_require__.e is used at runtime but is not defined in the bundle
  • fix behavior of externals of global type

Performance

  • Some performance improvements to the chunk graph generation

v4.20.2

Compare Source

Bugfixes

  • keep comments in export default in concatenated modules

v4.20.1

Compare Source

Bugfixes

  • fix crash when using libraryTarget: "amd" without library name

v4.20.0

Compare Source

Bugfixes

  • update dependencies (webpack-sources, @​webassemblyjs/*)
  • Handle errors thrown in renderes without crashing

Internal changes

  • Extended typings
  • Update internal structure of options schema to generate typings

v4.19.1

Compare Source

Bugfixes

  • Internal requested filename for import() with target: "electron-main" uses correct path separator on windows
    (This fixes a problem with filemappings in vscode)
  • devtool: "source-map" and variants generate SourceMaps when output file is .mjs
  • browser field as object is used when using target: "electron-renderer"
  • Comments near export default are preserved
  • Passing an array as externals value, now works correctly as documented

v4.19.0

Compare Source

Bugfixes

  • Create a hash of the whole runtime code for the chunk/contenthash of entry chunks
    • Before hash was (incorrectly) calculated from (some) inputs

v4.18.1

Compare Source

Bugfixes

  • Update tapable version, which fixes a memory leak

v4.18.0

Compare Source

Features

  • Upgrade webassemblyjs dependency

v4.17.3

Compare Source

Bugfixes

  • Fix exit code when multiple CLIs are installed
  • No longer recommend installing webpack-command, but still support it when installed

v4.17.2

Compare Source

Bugfixes

  • fix a spacing issue with the ProgressPlugin on some terminals
  • force-upgrade webpack-sources for performance improvement (was already in semver range)

v4.17.1

Compare Source

Bugfixes

  • fix missing reexports in export * in a concatenated module

v4.17.0

Compare Source

Features

  • allow to provide custom functions to IgnorePlugin

Bugfixes

  • remove incorrectly emitted dead code in concatenated modules
  • chunk ids contribute to [contenthash] for js assets
  • fix crash when trying to export globals in concatenated modules

v4.16.5

Compare Source

Bugfixes

  • (resource) query now works in import()
  • adding entries multiple times now overrides properly
    • This caused an issue when using webpack-hot-client and runtime chunks

v4.16.4

Compare Source

Bugfixes

  • fix chunkAsset hook in HotModuleReplacementPlugin

v4.16.3

Compare Source

Bugfixes

  • fix missing modules with chunks nested in unneeded require.ensures.

v4.16.2

Compare Source

Bugfixes

  • handle module.require like require
  • emit warnings for module.main.require and module.parent.require
  • sort reasons in stats
  • handle errors when parsing manifest in DllReferencePlugin

v4.16.1

Compare Source

Bugfixes

  • fix reversed order when using optimization.occurrenceOrder (default in production mode)
  • output.hashDigest has a more relaxed schema
  • update dependencies
  • fix typo in schema

Internal changes

  • typescript 3 rc

v4.16.0

Compare Source

Features

  • add wasm support for electron-renderer target
  • add optimization.moduleIds and optimization.chunkIds options to replace other options

Bugfixes

  • fix order of side effect evaluation for exported dependencies in side-effect-free modules
  • fix some typos
  • Support the case when passing an array to output.library.root and using a devtool
  • fix a HMR logging message issue in browser where err.stack is not set
  • add missing default extensions to the DllReferencePlugin
  • module/chunk ids in Stats now sort numerical when they are numbers
  • fix lost chunk reasons when using optimization.splitChunks.maxSize
  • fix cases where Dependency.loc is a string instead of an object

Deprecations

  • deprecated Dependency.compare in favor of compareLocations
  • optimization.namedModules is now deprecated
  • optimization.hashedModuleIds is now deprecated
  • optimization.namedChunks is now deprecated
  • optimization.occurrenceOrder is now deprecated

v4.15.1

Compare Source

Bugfixes

  • fix memory leaks when using HMR and in SplitChunksPlugin cache
  • fix undefined automaticNameDelimiter in cache groups when using maxSize
  • fix ProfilingPlugin for node.js 10 and 6

v4.15.0

Compare Source

Features:

  • add maxSize option for splitChunks (experimental)
  • add a helpful error when using wasm in a initial chunk

v4.14.0

Compare Source

Features

  • add new hook Compilation.dependencyReference to modify the dependency references

Bugfixes

  • Allow chunks to emit multiple assets to the same filename when hash matches

v4.13.0

Compare Source

Features

  • the DefinePlugin now supports runtimeValues to pass computed values with dependencies that can change over time
  • added optimization.hashedModuleIds
  • crossOrigin for chunks is only set when really needed
  • added per chunk group indicies
  • updated enhanced-resolve
    • You can now use absolute paths as keys to resolve.alias

Bugfixes

  • when delegating CLI the bin fields are used
  • when assigning indicies sync dependencies are now walked before async dependencies

v4.12.2

Compare Source

Bugfixes

  • fix crash when using invalid JSON with HMR
  • fix missing modules when a side-effect-free package is root of module concatenation
  • update chunkhash when entry-chunks list or prefetched chunks change

v4.12.1

Compare Source

Bugfixes

  • fix problem causing a stack overflow when reexporting circular
  • fix a bug causing missing modules in bundles when using splitChunks
  • run modules in correct order when using import with sideEffects: false
    • added order to DependencyReference
  • add missing support for [chunkhash] in target: "webworker"
  • fix bug causing incomplete profile (race condition) with the ProfilingPlugin

Internal changes

  • Added more types
  • lint files on commit with lint-staged

v4.12.0

Compare Source

Features

  • Errors from loaders show the loader path in the error message
  • add support for optional catch and line and paragraph separator in strings (ES2019)

Bugfixes

  • fixes a bug where chunks have duplicate ids when using records
  • fix bubbling in HMR for import() when importing a non-ESM
  • fix issue with in installing with pnpm
  • update dependencies of the ProfilingPlugin

v4.11.1

Compare Source

Features

  • add optimization.mangleWasmImports option to disable mangling of wasm imports

Bugfixes

  • disable wasm import mangling temporary because of bugs in the underlying wasm processing

v4.11.0

Compare Source

Features

  • support reportProgress in afterEmit
  • Warnings are now emitted if magic comments don't compile
  • Added support for matchResource inline request for loaders
  • Using webpackPrefetch in entry chunk now triggers prefetching in runtime
    • No link tag needed for this in HTML
  • Warnings will be emitted when trying to use i64-functions imported from wasm

Bugfixes

  • get_global initializer in wasm globals now work correctly
  • Reexporting globals is now handled correctly
  • Error origins and locations are now displayed correctly

v4.10.2

Compare Source

Bugfixes

  • order of wasm globals is correctly preversed while rewriting
  • skipping side-effect-free modules up to a concatenated modules will not longer cause null module ids

v4.10.1

Compare Source

Bugfixes

  • update reasons correctly when skipping side-effect-free modules

v4.10.0

Compare Source

Features

  • Export and import name strings in them wasm are mangled
  • Unused exports in wasm are removed (Tree Shaking)
    • Don't expect size improvements yet since there is not minimizer for WASM yet which does the Dead Code Elimination, which is the second part for this optimization
  • Direct WASM dependencies are enforced for:
    • functions imports with i64 parameters or return values
    • memory and table imports
  • generate shorter wasm runtime code
  • ESM namespace object now have Symbol.toStringTag "Module"

Bugfixes

  • generate correct initializer for imported globals in wasm
  • side-effect-free modules referenced by export * from are no longer including in the bundle
  • the side-effects optimization is now possible in incremental compilation

v4.9.2

Compare Source

Bugfixes

  • functions is defined because used (fixes undeclared function error in firefox)
  • progress plugin works now in MultiCompiler scenarios again

v4.9.1

Compare Source

Bugfixes

  • fix parameter references in default parameters

Internal changes

  • change test cases to text format

v4.9.0

Compare Source

Features

  • BannerPlugin supports a function as banner option
  • allow serve property in configuration schema
  • add entryOnly option to DllPlugin to only expose modules in the entry point
  • Allow to choose between webpack-cli and webpack-command
  • improve error message when JSON parsing fails
  • allow BOM in JSON
  • sort usedIds in records for stablility

Bugfixes

  • align module not found error message with node.js
  • fix behavior of splitChunks when request limit has reached (caused suboptimal splitting)
  • fix handling of RegExp in records (caused absolute path in records)
  • fix handling of circular chunks (caused missing __webpack_require__.e)
  • runtimeChunk is even generated when all modules are moved by splitChunks (caused multiple runtime chunks instead of single one)
  • string ids are no longer recorded (caused duplicate/wrong chunk ids)
  • fix link to migration guide in error message

Internal changes

  • add more typings
  • Use travis stages
  • add many-pages example

v4.8.3

Compare Source

Bugfixes

  • fix missing debug dependency
  • support arrays in output.library.root

v4.8.2

Compare Source

Bugfixes

  • WASM parser bugfixes
  • fix edge case when replacing top-level this in IIFE
  • avoid parser wasm many times

v4.8.1

Compare Source

Bugfixes

  • fix some WASM parsing issues

v4.8.0

Compare Source

Features

  • new WASM pipeline
    • use instantiateStreaming when available
    • allow circular dependencies between wasm modules (functions only)

Bugfixes

  • fix a bug where runtime code for wasm was incorrectly cached
  • fix a bug where a splitChunks cacheGroup without name wasn't executed

v4.7.0

Compare Source

Features

  • add webpackIgnore magic comment (import(/* webpackIgnore: true */ "...")) to keep the import in the bundle
  • add chunkGroups to Stats
    • chunkGroups option
    • namedChunkGroups property
    • Chunk Group text output

Bugfixes

  • prevent chunk merging for the runtimeChunk
  • fix a caching issue for concatenated modules
  • namedModules now handle name conflicts correctly
  • fix a crash when using [contenthash:n] without on-demand-chunks

Internal changes

  • testing uses Jest now
  • testing in node.js 10 too
  • Performance improvements

v4.6.0

Compare Source

Features

  • improve stats output alignment
  • improve stats text output when all exports are used
  • add webpackPrefetch/webpackPreload magic comments to import()
  • add stats.entrypoints[].children and stats.entrypoints[].childAssets to stats json
  • add prefetched/preloaded chunks and assets to stats text output
  • Performance improvements

Bugfixes

  • Escape chunk ids for target: "webworker"
  • fix this to undefined ESM replacement in function default values
  • new require(...) is weird, but now behaves like in node.js
  • fix behavior of export * from "commonjs" with partial override
  • fixed build time output in current locale in stats text output
  • fixed ChunkModuleIdRangePlugin and add tests
  • avoid race condition when using the loadModule loader API
  • fix default value of output.globalObject in target: "node-webkit"
  • fix a bug with loadModules and dependencies in these modules
  • fix hot.accept parser plugin to allow defined values as argument
  • print unknown size when size is unknown
  • fix a bug where some chunks were missing in the "single" runtime chunk
  • fix cloning of optimization configuration

Internal changes

  • Set up infrastructure for linting typings with TypeScript

v4.5.0

Compare Source

Features

  • Performance improvements
  • Improve readablility of error messages with long loader string

Bugfixes

  • Sort child compilations for consistent compilation hash
  • Fix bug causing all symbols to be renamed when concatenating modules

Contributing

  • add yarn setup script for bootstrapping local development

v4.4.1

Compare Source

Bugfixes

  • fix yarn/npm install script on windows

v4.4.0

Compare Source

Features

  • When webpack-cli is not installed it will ask to install it
  • splitChunks.chunks supports a custom function now
  • Better warning when omitting mode

Bugfixes

  • disallow functions for chunkFilename, because it's not working
  • generate correct code when using export default (function xxx() {})

Performance

  • Performance improvements for sorting by identifier

v4.3.0

Compare Source

Features

  • add support for [contenthash] placeholder

Bugfixes

  • browser field is used for target electron-renderer
  • set devtoolNamespace default correctly when passing an object to output.library

v4.2.0

Compare Source

Features

  • add splitChunks.automaticNameDelimiter to configure the name separator for automatic names
  • stats.excludeModules now also accept booleans
  • webpack throws an error when trying to run in twice at a time
  • performance is disabled by default in non-web targets
  • AMD parser plugins can now be extended by inheriting

Bugfixes

  • Fix a race condition when writing events.json in ProfilingPlugin
  • HMR runtime code is reverted to ES5 style
  • script timeout is not correctly in seconds
  • reexporting JSON exports works correctly now
  • fix a bug when combining ProfilingPlugin with SourceMapDevToolPlugin
  • add a missing semicolon to the runtime code

v4.1.1

Compare Source

Features

  • Stats now displays the number of assets of a module

Bugfixes

  • sourceMap option of the default UglifyJsPlugin now defaults to true when the SourceMapDevToolPlugin is used
  • module.assets is now working again in the Stats
  • chunk ids are not stringified on target node
  • devtoolNamespace default works now also for arrays passed to output.library
  • Format date with 2 digits in Stats for Build At
  • fix a bug renaming classes incorrectly
  • fix a bug where modules ignore the chunks option of optimization.splitChunks

v4.1.0

Compare Source

Features

  • add filename option to optimization.splitChunks to modify the filename template for splitted chunks
  • allow modules which doesn't emit code into the bundle

Bugfixes

  • watchpack updated to 1.5.0
  • performance fix for Module Concatenation (v8 bug)
  • fix using this.xxx in ProvidePlugin

v4.0.1

Compare Source

Features

  • add version property to webpack exports

Bugfixes

  • import() with CJS now gives correct exports
  • Module concatenation bailout messages now point to correct module

v4.0.0

Compare Source

Big changes

  • Environment
    • Node.js 4 is no longer supported. Source Code was upgraded to a higher ecmascript version.
  • Usage
    • You have to choose (mode or --mode) between two modes now: production or development
      • production enables all kind of optimizations to generate optimized bundles
      • development enables comments and hint for development and enables the eval devtool
      • production doesn't support watching, development is optimized for fast incremental rebuilds
      • production also enables module concatenating (Scope Hoisting)
      • You can configure this in detail with the flags in optimization.* (build your custom mode)
      • process.env.NODE_ENV are set to production or development (only in built code, not in config)
      • There is a hidden none mode which disables everything
  • Syntax
    • import() always returns a namespace object. CommonJS modules are wrapped into the default export
      • This probably breaks your code, if you used to import CommonJs with import()
  • Configuration
    • You no longer need to use these plugins:
      • NoEmitOnErrorsPlugin -> optimization.noEmitOnErrors (on by default in production mode)
      • ModuleConcatenationPlugin -> optimization.concatenateModules (on by default in production mode)
      • NamedModulesPlugin -> optimization.namedModules (on by default in develoment mode)
    • CommonsChunkPlugin was removed -> optimization.splitChunks, optimization.runtimeChunk
  • JSON
    • webpack now handles JSON natively
      • You may need to add type: "javascript/auto" when transforming JSON via loader to JS
      • Just using JSON without loader should still work
    • allows to import JSON via ESM syntax
      • unused exports elimination for JSON modules
  • Optimization
    • Upgrade uglifyjs-webpack-plugin to v1
      • ES15 support

Big features

  • Modules
    • webpack now supports these module types:
      • javascript/auto: (The default one in webpack 3) Javascript module with all module systems enabled: CommonJS, AMD, ESM
      • javascript/esm: EcmaScript modules, all other module system are not available
      • javascript/dynamic: Only CommonJS and, EcmaScript modules are not available
      • json: JSON data, it's available via require and import
      • webassembly/experimental: WebAssembly modules (currently experimental)
    • javascript/esm handles ESM more strictly compared to javascript/auto:
      • Imported names need to exist on imported module
      • Dynamic modules (non-esm, i. e. CommonJs) can only imported via default import, everything else (including namespace import) emit errors
    • In .mjs modules are javascript/esm by default
    • WebAssembly modules
      • can import other modules (JS and WASM)
      • Exports from WebAssembly modules are validated by ESM import
        • You'll get a warning/error when trying to import a non-existing export from WASM
      • can only be used in async chunks. They doesn't work in initial chunks (would be bad for web performance)
        • Import modules using WASM via import()
      • This is an experimental feature and subject of change
  • Optimization
    • sideEffects: false is now supported in package.json
      • sideEffects in package.json also supports glob expressions and arrays of glob expressions
    • Instead of a JSONP function a JSONP array is used -> async script tag support, order no longer matter
    • New optimization.splitChunks option was introduced
      Details: https://gist.github.com/sokra/1522d586b8e5c0f5072d7565c2bee693
    • Dead branches are now removed by webpack itself
      • Before: Uglify removed the dead code
      • Now: webpack removes the dead code (in some cases)
      • This prevents crashing when import() occur in a dead branch
  • Syntax
    • webpackInclude and webpackExclude are supported by the magic comment for import(). They allow to filter files when using a dynamic expression.
    • Using System.import() now emits a warning
      • You can disable the warning with Rule.parser.system: true
      • You can disable System.import with Rule.parser.system: false
  • Configuration
    • Resolving can now be configured with module.rules[].resolve. It's merged with the global configuration.
    • optimization.minimize has been added to switch minimizing on/off
      • By default: on in production mode, off in development mode
    • optimization.minimizer has been added to configurate minimizers and options
  • Usage
    • Some Plugin options are now validated
    • CLI has been move to webpack-cli, you need to install webpack-cli to use the CLI
    • The ProgressPlugin (--progress) now displays plugin names
      • At least for plugins migrated to the new plugin system
  • Performance
    • UglifyJs now caches and parallizes by default
    • Multiple performance improvements, especially for faster incremental rebuilds
    • performance improvement for RemoveParentModulesPlugin
  • Stats
    • Stats can display modules nested in concatenated modules

Features

  • Configuration
    • Module type is automatically choosen for mjs, json and wasm extensions. Other extensions need to be configured via module.rules[].type
    • Incorrect options.dependencies configurations now throw error
    • sideEffects can be overriden via module.rules
    • output.hashFunction can now be a Constructor to a custom hash function
      • You can provide a non-cryto hash function for performance reasons
    • add output.globalObject config option to allow to choose the global object reference in runtime exitCode
  • Runtime
    • Error for chunk loading now includes more information and two new properties type and request.
  • Devtool
    • remove comment footer from SourceMaps and eval
    • add support for include test and exclude to the eval source map devtool plugin
  • Performance
    • webpacks AST can be passed directly from loader to webpack to avoid extra parsing
    • Unused modules are no longer unnecessarly concatenated
    • Add a ProfilingPlugin which write a (Chrome) profile file which includes timings of plugins
    • Migrate to using for of instead of forEach
    • Migrate to using Map and Set instead of Objects
    • Migrate to using includes instead of indexOf
    • Replaced some RegExp with string methods
    • Queue don't enqueues the same job twice
    • Use faster md4 hash for hashing by default
  • Optimization
    • When using more than 25 expor

@appcues-wss appcues-wss bot added the security fix Security fix generated by WhiteSource label Oct 31, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
security fix Security fix generated by WhiteSource
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants