webpack/webpack
### [`v5.0.0`](https://togithub.com/webpack/webpack/releases/v5.0.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.46.0...v5.0.0)
[Announcement and changelog](https://webpack.js.org/blog/2020-10-10-webpack-5-release/)
### [`v4.46.0`](https://togithub.com/webpack/webpack/releases/v4.46.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.45.0...v4.46.0)
### Bugfixes
- fix behavior of defaults for `resolve.roots` to be backward-compatible
### [`v4.45.0`](https://togithub.com/webpack/webpack/releases/v4.45.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.44.2...v4.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
### [`v4.44.2`](https://togithub.com/webpack/webpack/releases/v4.44.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.44.1...v4.44.2)
### 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`](https://togithub.com/webpack/webpack/releases/v4.44.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.44.0...v4.44.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.44.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.43.0...v4.44.0)
### 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 `NaN`s 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`](https://togithub.com/webpack/webpack/releases/v4.43.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.42.1...v4.43.0)
### Features
- add `module.hot.invalidate()` to HMR API
### Dependencies
- push versions for forced security updates
### [`v4.42.1`](https://togithub.com/webpack/webpack/releases/v4.42.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.42.0...v4.42.1)
### Bugfixes
- update webassemblyjs dependencies for instruction update
- update mkdirp dependency for security reasons
### [`v4.42.0`](https://togithub.com/webpack/webpack/releases/v4.42.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.6...v4.42.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.41.6)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.5...v4.41.6)
### Bugfixes
- Windows network paths are considered as absolute paths
- fix hanging of FlagDependencyExportsPlugin when using `export *` in a circular matter
### [`v4.41.5`](https://togithub.com/webpack/webpack/releases/v4.41.5)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.4...v4.41.5)
### 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`](https://togithub.com/webpack/webpack/releases/v4.41.4)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.3...v4.41.4)
### 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`](https://togithub.com/webpack/webpack/releases/v4.41.3)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.2...v4.41.3)
### Security
- force upgrade terser-webpack-plugin dependency for security fix (not affecting webpack)
### Funding
- add npm funding field to package.json
### [`v4.41.2`](https://togithub.com/webpack/webpack/releases/v4.41.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.1...v4.41.2)
### Bugfixes
- fix issue with invalide timezone
### [`v4.41.1`](https://togithub.com/webpack/webpack/releases/v4.41.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.0...v4.41.1)
### Bugfixes
- fix incorrect request shortening when directory looks similar to parent directory
- fix crash when timezone is unknown
### [`v4.41.0`](https://togithub.com/webpack/webpack/releases/v4.41.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.40.3...v4.41.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.40.3)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.40.2...v4.40.3)
### 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`](https://togithub.com/webpack/webpack/releases/v4.40.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.40.1...v4.40.2)
### Bugfixes
- fix a bug where asset is undefined
### [`v4.40.1`](https://togithub.com/webpack/webpack/releases/v4.40.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.40.0...v4.40.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.40.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.39.3...v4.40.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.39.3)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.39.2...v4.39.3)
### Bugfixes
- fix a missing module in chunk caused by incorrect chunk graph generation of async chunks
### [`v4.39.2`](https://togithub.com/webpack/webpack/releases/v4.39.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.39.1...v4.39.2)
### Bugfixes
- fix ProfilingPlugin not ending traces correctly
### [`v4.39.1`](https://togithub.com/webpack/webpack/releases/v4.39.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.39.0...v4.39.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.39.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.38.0...v4.39.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.38.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.37.0...v4.38.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.37.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.36.1...v4.37.0)
### Features
- add logging API (see [https://github.com/webpack/webpack/pull/9436](https://togithub.com/webpack/webpack/pull/9436) for details)
### [`v4.36.1`](https://togithub.com/webpack/webpack/releases/v4.36.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.36.0...v4.36.1)
### Bugfixes
- fix regression in 4.36.0 when using happypack
### [`v4.36.0`](https://togithub.com/webpack/webpack/releases/v4.36.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.35.3...v4.36.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.35.3)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.35.2...v4.35.3)
### Bugfixes
- update acorn to include `import()`
### Performance
- Improved runtime performance for large JSON modules
### [`v4.35.2`](https://togithub.com/webpack/webpack/releases/v4.35.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.35.1...v4.35.2)
### Bugfixes
- `realResource` must match absolute paths
### [`v4.35.1`](https://togithub.com/webpack/webpack/releases/v4.35.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.35.0...v4.35.1)
### Bugfixes
- add `realResource` condition in rule to schema
- fixes order of loaders when using a matchResource
### [`v4.35.0`](https://togithub.com/webpack/webpack/releases/v4.35.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.34.0...v4.35.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.34.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.33.0...v4.34.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.33.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.32.2...v4.33.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.32.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.32.1...v4.32.2)
### 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`](https://togithub.com/webpack/webpack/releases/v4.32.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.32.0...v4.32.1)
### Bugfixes
- reverts some changes from 4.32.0 which accidentally disabled some CommonJs features when using `node: false`.
### [`v4.32.0`](https://togithub.com/webpack/webpack/releases/v4.32.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.31.0...v4.32.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.31.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.30.0...v4.31.0)
### Features
- add `errors-warnings` stats preset
### Bugfixes
- allow top-level return in non-ESM modules
### [`v4.30.0`](https://togithub.com/webpack/webpack/releases/v4.30.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.6...v4.30.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.29.6)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.5...v4.29.6)
### 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`](https://togithub.com/webpack/webpack/releases/v4.29.5)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.4...v4.29.5)
### Bugfixes
- update `@webassemblyjs` to remove git dependency
### [`v4.29.4`](https://togithub.com/webpack/webpack/releases/v4.29.4)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.3...v4.29.4)
### Bugfixes
- update `@webassemblyjs` for bugfixes
### [`v4.29.3`](https://togithub.com/webpack/webpack/releases/v4.29.3)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.2...v4.29.3)
### 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`](https://togithub.com/webpack/webpack/releases/v4.29.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.1...v4.29.2)
### Internal changes
- update dependencies
### [`v4.29.1`](https://togithub.com/webpack/webpack/releases/v4.29.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.0...v4.29.1)
### Bugfixes
- add missing `__esModule` flag when modules are concatenated, but without usage information
### [`v4.29.0`](https://togithub.com/webpack/webpack/releases/v4.29.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.4...v4.29.0)
### Important Note for npm users
This release updates some dependencies, which may trigger a npm bug. See [here for the webpack issue](https://togithub.com/webpack/webpack/issues/8656). The [npm bug](https://npm.community/t/packages-with-peerdependencies-are-incorrectly-hoisted/4794) has [been fixed](https://togithub.com/npm/cli/pull/147), but a new npm version has not been released yet.
For workarounds see [this comment](https://togithub.com/webpack/webpack/issues/8656#issuecomment-456713191).
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`](https://togithub.com/webpack/webpack/releases/v4.28.4)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.3...v4.28.4)
### 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`](https://togithub.com/webpack/webpack/releases/v4.28.3)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.2...v4.28.3)
### Bugfixes
- ProfilingPlugin creates the output folder if necessary
### [`v4.28.2`](https://togithub.com/webpack/webpack/releases/v4.28.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.1...v4.28.2)
### Bugfixes
- fixes a crash when multiple IgnorePlugins are used
### [`v4.28.1`](https://togithub.com/webpack/webpack/releases/v4.28.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.0...v4.28.1)
### Bugfixes
- fix error in IgnorePlugin when no contextRegExp is passed
### [`v4.28.0`](https://togithub.com/webpack/webpack/releases/v4.28.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.27.1...v4.28.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.27.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.27.0...v4.27.1)
### Bugfixes
- v4.27.0 accidentially introduced a breaking change. This reverts the change and restores the original behavior for `splitChunks` `enforce`.
### [`v4.27.0`](https://togithub.com/webpack/webpack/releases/v4.27.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.26.1...v4.27.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.26.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.26.0...v4.26.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.26.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.25.1...v4.26.0)
### 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`](https://webpack.js.org/configuration/optimization/#optimization-minimizer) configuration option to switch back to uglify-es or provide additional minimize options for terser.
### [`v4.25.1`](https://togithub.com/webpack/webpack/releases/v4.25.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.25.0...v4.25.1)
### Bugfixes
- fix replacement of compile-time constant expression when expression is a wrapped expression (string prefix and/or suffix).
### [`v4.25.0`](https://togithub.com/webpack/webpack/releases/v4.25.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.24.0...v4.25.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.24.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.23.1...v4.24.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.23.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.23.0...v4.23.1)
### Bugfixes
- add space when replacing expression with constant
- i. e. for code like `return'development'===process.env.NODE_ENV&&'foo'`
### [`v4.23.0`](https://togithub.com/webpack/webpack/releases/v4.23.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.22.0...v4.23.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.22.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.21.0...v4.22.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.21.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.20.2...v4.21.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.20.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.20.1...v4.20.2)
### Bugfixes
- keep comments in `export default` in concatenated modules
### [`v4.20.1`](https://togithub.com/webpack/webpack/releases/v4.20.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.20.0...v4.20.1)
### Bugfixes
- fix crash when using `libraryTarget: "amd"` without library name
### [`v4.20.0`](https://togithub.com/webpack/webpack/releases/v4.20.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.19.1...v4.20.0)
### 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
- Note: this exposed an issue in webpack-cli, you need to upgrade to webpack-cli@3.1.1
### [`v4.19.1`](https://togithub.com/webpack/webpack/releases/v4.19.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.19.0...v4.19.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.19.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.18.1...v4.19.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.18.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.18.0...v4.18.1)
### Bugfixes
- Update tapable version, which fixes a memory leak
### [`v4.18.0`](https://togithub.com/webpack/webpack/releases/v4.18.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.17.3...v4.18.0)
### Features
- Upgrade webassemblyjs dependency
### [`v4.17.3`](https://togithub.com/webpack/webpack/releases/v4.17.3)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.17.2...v4.17.3)
### Bugfixes
- Fix exit code when multiple CLIs are installed
- No longer recommend installing webpack-command, but still support it when installed
### [`v4.17.2`](https://togithub.com/webpack/webpack/releases/v4.17.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.17.1...v4.17.2)
### 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`](https://togithub.com/webpack/webpack/releases/v4.17.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.17.0...v4.17.1)
### Bugfixes
- fix missing reexports in `export *` in a concatenated module
### [`v4.17.0`](https://togithub.com/webpack/webpack/releases/v4.17.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.5...v4.17.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.16.5)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.4...v4.16.5)
### 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`](https://togithub.com/webpack/webpack/releases/v4.16.4)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.3...v4.16.4)
### Bugfixes
- fix `chunkAsset` hook in HotModuleReplacementPlugin
### [`v4.16.3`](https://togithub.com/webpack/webpack/releases/v4.16.3)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.2...v4.16.3)
### Bugfixes
- fix missing modules with chunks nested in unneeded `require.ensure`s.
### [`v4.16.2`](https://togithub.com/webpack/webpack/releases/v4.16.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.1...v4.16.2)
### 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`](https://togithub.com/webpack/webpack/releases/v4.16.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.0...v4.16.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.16.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.15.1...v4.16.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.15.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.15.0...v4.15.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.15.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.14.0...v4.15.0)
### Features:
- add `maxSize` option for `splitChunks` (experimental)
- add a helpful error when using wasm in a initial chunk
### [`v4.14.0`](https://togithub.com/webpack/webpack/releases/v4.14.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.13.0...v4.14.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.13.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.12.2...v4.13.0)
### Features
- the `DefinePlugin` now supports `runtimeValue`s 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`](https://togithub.com/webpack/webpack/releases/v4.12.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.12.1...v4.12.2)
### 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`](https://togithub.com/webpack/webpack/releases/v4.12.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.12.0...v4.12.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.12.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.11.1...v4.12.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.11.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.11.0...v4.11.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.11.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.10.2...v4.11.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.10.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.10.1...v4.10.2)
### 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`](https://togithub.com/webpack/webpack/releases/v4.10.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.10.0...v4.10.1)
### Bugfixes
- update reasons correctly when skipping side-effect-free modules
### [`v4.10.0`](https://togithub.com/webpack/webpack/releases/v4.10.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.9.2...v4.10.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.9.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.9.1...v4.9.2)
### Bugfixes
- functions is defined because used (fixes undeclared function error in firefox)
- progress plugin works now in MultiCompiler scenarios again
### [`v4.9.1`](https://togithub.com/webpack/webpack/releases/v4.9.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.9.0...v4.9.1)
### Bugfixes
- fix parameter references in default parameters
### Internal changes
- change test cases to text format
### [`v4.9.0`](https://togithub.com/webpack/webpack/releases/v4.9.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.8.3...v4.9.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.8.3)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.8.2...v4.8.3)
### Bugfixes
- fix missing `debug` dependency
- support arrays in `output.library.root`
### [`v4.8.2`](https://togithub.com/webpack/webpack/releases/v4.8.2)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.8.1...v4.8.2)
### Bugfixes
- WASM parser bugfixes
- fix edge case when replacing top-level this in IIFE
- avoid parser wasm many times
### [`v4.8.1`](https://togithub.com/webpack/webpack/releases/v4.8.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.8.0...v4.8.1)
### Bugfixes
- fix some WASM parsing issues
### [`v4.8.0`](https://togithub.com/webpack/webpack/releases/v4.8.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.7.0...v4.8.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.7.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.6.0...v4.7.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.6.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.5.0...v4.6.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.5.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.4.1...v4.5.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.4.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.4.0...v4.4.1)
### Bugfixes
- fix yarn/npm install script on windows
### [`v4.4.0`](https://togithub.com/webpack/webpack/releases/v4.4.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.3.0...v4.4.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.3.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.2.0...v4.3.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.2.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.1.1...v4.2.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.1.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.1.0...v4.1.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.1.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.0.1...v4.1.0)
### 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`](https://togithub.com/webpack/webpack/releases/v4.0.1)
[Compare Source](https://togithub.com/webpack/webpack/compare/v4.0.0...v4.0.1)
### 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`](https://togithub.com/webpack/webpack/releases/v4.0.0)
[Compare Source](https://togithub.com/webpack/webpack/compare/v3.12.0...v4.0.0)
##### 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 exports mangled export names are shorter.
- script tags are no longer `text/javascript` and `async` as this are the default values (saves a few bytes)
- The concatenated module now generates a bit less code
- constant replacements now don't need `__webpack_require__` and argument is omitted
- Defaults
- webpack now looks for the `.wasm`, `.mjs`, `.js` and `.json` extensions in this order
- `output.pathinfo` is now on by default in develoment mode
- in-memory caching is now off by default in production
- `entry` defaults to `./src`
- `output.path` defaults to `./dist`
- Use `production` defaults when omiting the `mode` option
- Usage
- Add detailed progress reporting to SourceMapDevToolPlugin
- removed plugins now give a useful error message
- Stats
- Sizes are now shown in kiB instead of kB in Stats
- entrypoints are now shows by default in Stats
- chunks now display `<{parents}>` `>{children}<` and `={siblings}=` in Stats
- add `buildAt` time to stats
- stats json now includes the output path
- Syntax
- A resource query is supported in context
- Referencing entry point name in `import()` now emits a error instead of a warning
- Upgraded to acorn 5 and support ES 2018
- Plugins
- `done` is now an async hook
##### Bugfixes
- Generated comments no longer break on `*/`
- webpack no longer modifies the passed options object
- Compiler "watch-run" hook now has the Compiler as first parameter
- add `output.chunkCallbackName` to the schema to allow configurating WebWorker template
- Using `module.id/loaded` now correctly bails out of Module Concatentation (Scope Hoisting)
- OccurenceOrderPlugin now sorts modules in correct order (instead of reversed)
- timestamps for files are read from watcher when calling `Watching.invalidate`
- fix incorrect `-!` behavior with post loaders
- add `run` and `watchRun` hooks for `MultiCompiler`
- `this` is now undefined in ESM
- VariableDeclaration are correctly identified as `var`, `const` or `let`
- Parser now parse the source code with the correct source type (module/script) when the module type `javascript/dynamic` or `javascript/module` is used.
- don't crash on missing modules with `buildMeta` of null
- add `original-fs` module for electron targets
- HMRPlugin can be added to the Compiler outside of `plugins`
##### Internal changes
- Replaced `plugin` calls with `tap` calls (new plugin system)
- Migrated many deprecated plugins to new plugin system API
- added `buildMeta.exportsType: "default"` for json modules
- Remove unused methods from Parser (parserStringArray, parserCalculatedStringArray)
- Remove ability to clear BasicEvaluatedExpression and to have multiple types
- Buffer.from instead of new Buffer
- Avoid using forEach and use for of instead
- Use `neo-async` instead of `async`
- Update tapable and enhanced-resolve dependencies to new major versions
- Use prettier
##### Removed features
- removed `module.loaders`
- r
This PR contains the following updates:
1.13.2
->5.0.0
By merging this PR, the issue #20 will be automatically resolved and closed:
Release Notes
webpack/webpack
### [`v5.0.0`](https://togithub.com/webpack/webpack/releases/v5.0.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.46.0...v5.0.0) [Announcement and changelog](https://webpack.js.org/blog/2020-10-10-webpack-5-release/) ### [`v4.46.0`](https://togithub.com/webpack/webpack/releases/v4.46.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.45.0...v4.46.0) ### Bugfixes - fix behavior of defaults for `resolve.roots` to be backward-compatible ### [`v4.45.0`](https://togithub.com/webpack/webpack/releases/v4.45.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.44.2...v4.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 ### [`v4.44.2`](https://togithub.com/webpack/webpack/releases/v4.44.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.44.1...v4.44.2) ### 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`](https://togithub.com/webpack/webpack/releases/v4.44.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.44.0...v4.44.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.44.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.43.0...v4.44.0) ### 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 `NaN`s 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`](https://togithub.com/webpack/webpack/releases/v4.43.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.42.1...v4.43.0) ### Features - add `module.hot.invalidate()` to HMR API ### Dependencies - push versions for forced security updates ### [`v4.42.1`](https://togithub.com/webpack/webpack/releases/v4.42.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.42.0...v4.42.1) ### Bugfixes - update webassemblyjs dependencies for instruction update - update mkdirp dependency for security reasons ### [`v4.42.0`](https://togithub.com/webpack/webpack/releases/v4.42.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.6...v4.42.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.41.6) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.5...v4.41.6) ### Bugfixes - Windows network paths are considered as absolute paths - fix hanging of FlagDependencyExportsPlugin when using `export *` in a circular matter ### [`v4.41.5`](https://togithub.com/webpack/webpack/releases/v4.41.5) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.4...v4.41.5) ### 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`](https://togithub.com/webpack/webpack/releases/v4.41.4) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.3...v4.41.4) ### 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`](https://togithub.com/webpack/webpack/releases/v4.41.3) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.2...v4.41.3) ### Security - force upgrade terser-webpack-plugin dependency for security fix (not affecting webpack) ### Funding - add npm funding field to package.json ### [`v4.41.2`](https://togithub.com/webpack/webpack/releases/v4.41.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.1...v4.41.2) ### Bugfixes - fix issue with invalide timezone ### [`v4.41.1`](https://togithub.com/webpack/webpack/releases/v4.41.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.41.0...v4.41.1) ### Bugfixes - fix incorrect request shortening when directory looks similar to parent directory - fix crash when timezone is unknown ### [`v4.41.0`](https://togithub.com/webpack/webpack/releases/v4.41.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.40.3...v4.41.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.40.3) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.40.2...v4.40.3) ### 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`](https://togithub.com/webpack/webpack/releases/v4.40.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.40.1...v4.40.2) ### Bugfixes - fix a bug where asset is undefined ### [`v4.40.1`](https://togithub.com/webpack/webpack/releases/v4.40.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.40.0...v4.40.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.40.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.39.3...v4.40.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.39.3) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.39.2...v4.39.3) ### Bugfixes - fix a missing module in chunk caused by incorrect chunk graph generation of async chunks ### [`v4.39.2`](https://togithub.com/webpack/webpack/releases/v4.39.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.39.1...v4.39.2) ### Bugfixes - fix ProfilingPlugin not ending traces correctly ### [`v4.39.1`](https://togithub.com/webpack/webpack/releases/v4.39.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.39.0...v4.39.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.39.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.38.0...v4.39.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.38.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.37.0...v4.38.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.37.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.36.1...v4.37.0) ### Features - add logging API (see [https://github.com/webpack/webpack/pull/9436](https://togithub.com/webpack/webpack/pull/9436) for details) ### [`v4.36.1`](https://togithub.com/webpack/webpack/releases/v4.36.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.36.0...v4.36.1) ### Bugfixes - fix regression in 4.36.0 when using happypack ### [`v4.36.0`](https://togithub.com/webpack/webpack/releases/v4.36.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.35.3...v4.36.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.35.3) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.35.2...v4.35.3) ### Bugfixes - update acorn to include `import()` ### Performance - Improved runtime performance for large JSON modules ### [`v4.35.2`](https://togithub.com/webpack/webpack/releases/v4.35.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.35.1...v4.35.2) ### Bugfixes - `realResource` must match absolute paths ### [`v4.35.1`](https://togithub.com/webpack/webpack/releases/v4.35.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.35.0...v4.35.1) ### Bugfixes - add `realResource` condition in rule to schema - fixes order of loaders when using a matchResource ### [`v4.35.0`](https://togithub.com/webpack/webpack/releases/v4.35.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.34.0...v4.35.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.34.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.33.0...v4.34.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.33.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.32.2...v4.33.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.32.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.32.1...v4.32.2) ### 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`](https://togithub.com/webpack/webpack/releases/v4.32.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.32.0...v4.32.1) ### Bugfixes - reverts some changes from 4.32.0 which accidentally disabled some CommonJs features when using `node: false`. ### [`v4.32.0`](https://togithub.com/webpack/webpack/releases/v4.32.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.31.0...v4.32.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.31.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.30.0...v4.31.0) ### Features - add `errors-warnings` stats preset ### Bugfixes - allow top-level return in non-ESM modules ### [`v4.30.0`](https://togithub.com/webpack/webpack/releases/v4.30.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.6...v4.30.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.29.6) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.5...v4.29.6) ### 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`](https://togithub.com/webpack/webpack/releases/v4.29.5) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.4...v4.29.5) ### Bugfixes - update `@webassemblyjs` to remove git dependency ### [`v4.29.4`](https://togithub.com/webpack/webpack/releases/v4.29.4) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.3...v4.29.4) ### Bugfixes - update `@webassemblyjs` for bugfixes ### [`v4.29.3`](https://togithub.com/webpack/webpack/releases/v4.29.3) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.2...v4.29.3) ### 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`](https://togithub.com/webpack/webpack/releases/v4.29.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.1...v4.29.2) ### Internal changes - update dependencies ### [`v4.29.1`](https://togithub.com/webpack/webpack/releases/v4.29.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.29.0...v4.29.1) ### Bugfixes - add missing `__esModule` flag when modules are concatenated, but without usage information ### [`v4.29.0`](https://togithub.com/webpack/webpack/releases/v4.29.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.4...v4.29.0) ### Important Note for npm users This release updates some dependencies, which may trigger a npm bug. See [here for the webpack issue](https://togithub.com/webpack/webpack/issues/8656). The [npm bug](https://npm.community/t/packages-with-peerdependencies-are-incorrectly-hoisted/4794) has [been fixed](https://togithub.com/npm/cli/pull/147), but a new npm version has not been released yet. For workarounds see [this comment](https://togithub.com/webpack/webpack/issues/8656#issuecomment-456713191). 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`](https://togithub.com/webpack/webpack/releases/v4.28.4) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.3...v4.28.4) ### 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`](https://togithub.com/webpack/webpack/releases/v4.28.3) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.2...v4.28.3) ### Bugfixes - ProfilingPlugin creates the output folder if necessary ### [`v4.28.2`](https://togithub.com/webpack/webpack/releases/v4.28.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.1...v4.28.2) ### Bugfixes - fixes a crash when multiple IgnorePlugins are used ### [`v4.28.1`](https://togithub.com/webpack/webpack/releases/v4.28.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.28.0...v4.28.1) ### Bugfixes - fix error in IgnorePlugin when no contextRegExp is passed ### [`v4.28.0`](https://togithub.com/webpack/webpack/releases/v4.28.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.27.1...v4.28.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.27.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.27.0...v4.27.1) ### Bugfixes - v4.27.0 accidentially introduced a breaking change. This reverts the change and restores the original behavior for `splitChunks` `enforce`. ### [`v4.27.0`](https://togithub.com/webpack/webpack/releases/v4.27.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.26.1...v4.27.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.26.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.26.0...v4.26.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.26.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.25.1...v4.26.0) ### 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`](https://webpack.js.org/configuration/optimization/#optimization-minimizer) configuration option to switch back to uglify-es or provide additional minimize options for terser. ### [`v4.25.1`](https://togithub.com/webpack/webpack/releases/v4.25.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.25.0...v4.25.1) ### Bugfixes - fix replacement of compile-time constant expression when expression is a wrapped expression (string prefix and/or suffix). ### [`v4.25.0`](https://togithub.com/webpack/webpack/releases/v4.25.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.24.0...v4.25.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.24.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.23.1...v4.24.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.23.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.23.0...v4.23.1) ### Bugfixes - add space when replacing expression with constant - i. e. for code like `return'development'===process.env.NODE_ENV&&'foo'` ### [`v4.23.0`](https://togithub.com/webpack/webpack/releases/v4.23.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.22.0...v4.23.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.22.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.21.0...v4.22.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.21.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.20.2...v4.21.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.20.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.20.1...v4.20.2) ### Bugfixes - keep comments in `export default` in concatenated modules ### [`v4.20.1`](https://togithub.com/webpack/webpack/releases/v4.20.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.20.0...v4.20.1) ### Bugfixes - fix crash when using `libraryTarget: "amd"` without library name ### [`v4.20.0`](https://togithub.com/webpack/webpack/releases/v4.20.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.19.1...v4.20.0) ### 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 - Note: this exposed an issue in webpack-cli, you need to upgrade to webpack-cli@3.1.1 ### [`v4.19.1`](https://togithub.com/webpack/webpack/releases/v4.19.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.19.0...v4.19.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.19.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.18.1...v4.19.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.18.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.18.0...v4.18.1) ### Bugfixes - Update tapable version, which fixes a memory leak ### [`v4.18.0`](https://togithub.com/webpack/webpack/releases/v4.18.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.17.3...v4.18.0) ### Features - Upgrade webassemblyjs dependency ### [`v4.17.3`](https://togithub.com/webpack/webpack/releases/v4.17.3) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.17.2...v4.17.3) ### Bugfixes - Fix exit code when multiple CLIs are installed - No longer recommend installing webpack-command, but still support it when installed ### [`v4.17.2`](https://togithub.com/webpack/webpack/releases/v4.17.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.17.1...v4.17.2) ### 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`](https://togithub.com/webpack/webpack/releases/v4.17.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.17.0...v4.17.1) ### Bugfixes - fix missing reexports in `export *` in a concatenated module ### [`v4.17.0`](https://togithub.com/webpack/webpack/releases/v4.17.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.5...v4.17.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.16.5) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.4...v4.16.5) ### 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`](https://togithub.com/webpack/webpack/releases/v4.16.4) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.3...v4.16.4) ### Bugfixes - fix `chunkAsset` hook in HotModuleReplacementPlugin ### [`v4.16.3`](https://togithub.com/webpack/webpack/releases/v4.16.3) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.2...v4.16.3) ### Bugfixes - fix missing modules with chunks nested in unneeded `require.ensure`s. ### [`v4.16.2`](https://togithub.com/webpack/webpack/releases/v4.16.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.1...v4.16.2) ### 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`](https://togithub.com/webpack/webpack/releases/v4.16.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.16.0...v4.16.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.16.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.15.1...v4.16.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.15.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.15.0...v4.15.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.15.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.14.0...v4.15.0) ### Features: - add `maxSize` option for `splitChunks` (experimental) - add a helpful error when using wasm in a initial chunk ### [`v4.14.0`](https://togithub.com/webpack/webpack/releases/v4.14.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.13.0...v4.14.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.13.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.12.2...v4.13.0) ### Features - the `DefinePlugin` now supports `runtimeValue`s 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`](https://togithub.com/webpack/webpack/releases/v4.12.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.12.1...v4.12.2) ### 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`](https://togithub.com/webpack/webpack/releases/v4.12.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.12.0...v4.12.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.12.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.11.1...v4.12.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.11.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.11.0...v4.11.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.11.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.10.2...v4.11.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.10.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.10.1...v4.10.2) ### 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`](https://togithub.com/webpack/webpack/releases/v4.10.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.10.0...v4.10.1) ### Bugfixes - update reasons correctly when skipping side-effect-free modules ### [`v4.10.0`](https://togithub.com/webpack/webpack/releases/v4.10.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.9.2...v4.10.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.9.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.9.1...v4.9.2) ### Bugfixes - functions is defined because used (fixes undeclared function error in firefox) - progress plugin works now in MultiCompiler scenarios again ### [`v4.9.1`](https://togithub.com/webpack/webpack/releases/v4.9.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.9.0...v4.9.1) ### Bugfixes - fix parameter references in default parameters ### Internal changes - change test cases to text format ### [`v4.9.0`](https://togithub.com/webpack/webpack/releases/v4.9.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.8.3...v4.9.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.8.3) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.8.2...v4.8.3) ### Bugfixes - fix missing `debug` dependency - support arrays in `output.library.root` ### [`v4.8.2`](https://togithub.com/webpack/webpack/releases/v4.8.2) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.8.1...v4.8.2) ### Bugfixes - WASM parser bugfixes - fix edge case when replacing top-level this in IIFE - avoid parser wasm many times ### [`v4.8.1`](https://togithub.com/webpack/webpack/releases/v4.8.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.8.0...v4.8.1) ### Bugfixes - fix some WASM parsing issues ### [`v4.8.0`](https://togithub.com/webpack/webpack/releases/v4.8.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.7.0...v4.8.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.7.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.6.0...v4.7.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.6.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.5.0...v4.6.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.5.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.4.1...v4.5.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.4.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.4.0...v4.4.1) ### Bugfixes - fix yarn/npm install script on windows ### [`v4.4.0`](https://togithub.com/webpack/webpack/releases/v4.4.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.3.0...v4.4.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.3.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.2.0...v4.3.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.2.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.1.1...v4.2.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.1.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.1.0...v4.1.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.1.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.0.1...v4.1.0) ### 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`](https://togithub.com/webpack/webpack/releases/v4.0.1) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.0.0...v4.0.1) ### 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`](https://togithub.com/webpack/webpack/releases/v4.0.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v3.12.0...v4.0.0) ##### 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 exports mangled export names are shorter. - script tags are no longer `text/javascript` and `async` as this are the default values (saves a few bytes) - The concatenated module now generates a bit less code - constant replacements now don't need `__webpack_require__` and argument is omitted - Defaults - webpack now looks for the `.wasm`, `.mjs`, `.js` and `.json` extensions in this order - `output.pathinfo` is now on by default in develoment mode - in-memory caching is now off by default in production - `entry` defaults to `./src` - `output.path` defaults to `./dist` - Use `production` defaults when omiting the `mode` option - Usage - Add detailed progress reporting to SourceMapDevToolPlugin - removed plugins now give a useful error message - Stats - Sizes are now shown in kiB instead of kB in Stats - entrypoints are now shows by default in Stats - chunks now display `<{parents}>` `>{children}<` and `={siblings}=` in Stats - add `buildAt` time to stats - stats json now includes the output path - Syntax - A resource query is supported in context - Referencing entry point name in `import()` now emits a error instead of a warning - Upgraded to acorn 5 and support ES 2018 - Plugins - `done` is now an async hook ##### Bugfixes - Generated comments no longer break on `*/` - webpack no longer modifies the passed options object - Compiler "watch-run" hook now has the Compiler as first parameter - add `output.chunkCallbackName` to the schema to allow configurating WebWorker template - Using `module.id/loaded` now correctly bails out of Module Concatentation (Scope Hoisting) - OccurenceOrderPlugin now sorts modules in correct order (instead of reversed) - timestamps for files are read from watcher when calling `Watching.invalidate` - fix incorrect `-!` behavior with post loaders - add `run` and `watchRun` hooks for `MultiCompiler` - `this` is now undefined in ESM - VariableDeclaration are correctly identified as `var`, `const` or `let` - Parser now parse the source code with the correct source type (module/script) when the module type `javascript/dynamic` or `javascript/module` is used. - don't crash on missing modules with `buildMeta` of null - add `original-fs` module for electron targets - HMRPlugin can be added to the Compiler outside of `plugins` ##### Internal changes - Replaced `plugin` calls with `tap` calls (new plugin system) - Migrated many deprecated plugins to new plugin system API - added `buildMeta.exportsType: "default"` for json modules - Remove unused methods from Parser (parserStringArray, parserCalculatedStringArray) - Remove ability to clear BasicEvaluatedExpression and to have multiple types - Buffer.from instead of new Buffer - Avoid using forEach and use for of instead - Use `neo-async` instead of `async` - Update tapable and enhanced-resolve dependencies to new major versions - Use prettier ##### Removed features - removed `module.loaders` - r