expose snapshot options for module, resolve, buildDependencies and resolveBuildDependencies
move managedPaths and immutablePaths from config.cache to config.snapshot
add timestamp + hash snapshotting mode
use timestamp + hash mode by default in production and for buildDependencies
to keep track of runtimes, used exports depending on runtime
modules can have different hashes and generated code depending on runtime
chunks are only considered as equal for MergeDuplicateChunks and SplitChunks when exports used in contained modules are equal
added `optimization.usedExports: "global"` to opt-out from used exports analysis per runtime
added `splitChunks.usedExports` and `splitChunks.cacheGroups[x].usedExports` to enable/disable used exports comparing for modules
`splitChunks.usedExports` defaults to `true` in production
improve experiments.mjs to be more compatibly with node.js ESM
- add support for `type: "module"` in package.json
- add support for `*.cjs`
- enable strict ESM for data uris with `text/javascript` or `application/javascript`
- disallow not fully specified requests in imports `*.mjs` or `type: "module"`
add `descriptionData` rule condition to match package.json info
fix passing resolveOptions along context modules
Allow to use "..." in `option.resolve` too
Add "..." to schema when needed
Apply dependency specific mainFields, aliasFields and conditionNames only
for cjs and esm dependencies or when none is specified for backward-compat.
add new splitChunks.enforceSizeThreshold option
enforces splitting on certain size (ignoring maxRequests and minRemainingSize)
reduce default for splitChunks.minSize to 20k
set default for splitChunks.enforceSizeThreshold to 50k
fix bug where sorting didn't work for minSize: 0
add `promise` external
add `import` external (uses import())
add `output.importFunctionName` option to change the `import()` function name
allow for inline external type when using arrays
fix some typings
fix namespace object behavior when using system external and accessing nested property
fix interop behavior for async dynamic modules