Change8

v5.105.3

Breaking Changes
📦 webpackView on GitHub →
1 breaking3 features🐛 6 fixes🔧 6 symbols

Summary

This patch release focuses on bug fixes across context modules, HMR for CSS, entry point generation, and module resolution, while introducing stricter control over asset module side-effect marking via experimental flags.

⚠️ Breaking Changes

  • Asset modules are now only marked as side-effect-free when `experimental.futureDefaults` is set to true. If you rely on asset-copying use cases (e.g. `import "./x.png"`) without enabling this option, they might now behave differently (i.e., not be marked as side-effect-free).

Migration Steps

  1. If you rely on asset modules being side-effect-free for asset-copying use cases (e.g. `import "./x.png"`) and are not using `experimental.futureDefaults: true`, you may need to enable `experimental.futureDefaults: true` to maintain previous behavior regarding side-effect-free marking.

✨ New Features

  • Added `createRequire` support for ECMA modules.
  • Added category for CJS reexport dependency to fix issues with ECMA modules.
  • Implement immutable bytes for `bytes` import attribute to match tc39 spec.

🐛 Bug Fixes

  • Context modules now handle rejections correctly.
  • Fixed HMR failure for CSS modules with @import when exportType !== "link".
  • Fixed an issue where empty JavaScript files were generated for CSS-only entry points.
  • Do not crash when a referenced chunk is not a runtime chunk.
  • Ensure that missing module error are thrown after the interception handler (if present), allowing module interception to customize the module factory.
  • Fixed deterministic search for graph roots regardless of edge order.

Affected Symbols