webpack/webpack
### [`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 (), 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:
- 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`
- removed `loaderContext.options`
- removed `Compilation.notCacheable` flag
- removed `NoErrorsPlugin`
- removed `Dependency.isEqualResource`
- removed `NewWatchingPlugin`
- removed `CommonsChunkPlugin`
### Breaking changes for plugins/loaders
- new plugin system
- `plugin` method is backward-compatible
- Plugins should use `Compiler.hooks.xxx.tap(, fn)` now
- New major version of enhanced-resolve
- Templates for chunks may now generate multiple assets
- `Chunk.chunks/parents/blocks` are no longer Arrays. A Set is used internally and there are methods to access it.
- `Parser.scope.renames` and `Parser.scope.definitions` are no longer Objects/Arrays, but Map/Sets.
- Parser uses `StackedSetMap` (LevelDB-like datastructure) instead of Arrays
- `Compiler.options` is no longer set while applying plugins
- Harmony Dependencies has changed because of refactoring
- `Dependency.getReference()` may now return a `weak` property. `Dependency.weak` is now used by the `Dependency` base class and returned in the base impl of `getReference()`
- Constructor arguments changed for all `Module`s
- Merged options into options object for `ContextModule` and `resolveDependencies`
- Changed and renamed dependencies for \`import()
- Moved `Compiler.resolvers` into `Compiler.resolverFactory` accessible with plugins
- `Dependency.isEqualResource` has been replaced with `Dependency.getResourceIdentifier`
- Methods on `Template` are now static
- A new RuntimeTemplate class has been added and `outputOptions` and `requestShortener` has been moved to this class
- Many methods has been updated to use the RuntimeTemplate instead
- We plan to move code which accesses the runtime to this new class
- `Module.meta` has been replaced with `Module.buildMeta`
- `Module.buildInfo` and `Module.factoryMeta` have been added
- Some properties of `Module` have been moved into the new objects
- added `loaderContext.rootContext` which points to the `context` options. Loaders may use it to make stuff relative to the application root.
- add `this.hot` flag to loader context when HMR is enabled
- `buildMeta.harmony` has been replaced with `buildMeta.exportsType: "namespace`
- The chunk graph has changed:
- Before: Chunks were connected with parent-child-relationships.
- Now: ChunkGroups are connected with parent-child-relationships. ChunkGroups contain Chunks in order.
- Before: AsyncDependenciesBlocks reference a list of Chunks in order.
- Now: AsyncDependenciesBlocks reference a single ChunkGroup.
- file/contextTimestamps are Maps now
- `map/foreach` `Chunks/Modules/Parents` methods are now deprecated/removed
- NormalModule accept options object in Constructor
- Added required generator argument for NormalModule
- Added `createGenerator` and `generator` hooks for NormalModuleFactory to customize code generation
- Allow to customize render manifest for Chunks via hooks
Renovate configuration
:date: Schedule: "every weekend" in timezone Europe/Paris.
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR is stale, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Renovate Bot. View repository job log here.
This PR contains the following updates:
3.12.0
->4.29.6
Release Notes
webpack/webpack
### [`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 (Renovate configuration
:date: Schedule: "every weekend" in timezone Europe/Paris.
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR is stale, or if you modify the PR title to begin with "
rebase!
".:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot. View repository job log here.