## [1.0.0-beta.17] - 2025-06-17
### 🚀 Features
- binding: feat(binding): always use the same `BindingBundler` to create `BindingBundlerImpl` for the same `RolldownBuild` by @hyf0 in [#4985](#4985)
- debug: feat(debug): cache large string by @hyf0 in [#4882](#4882)
- feat: make require('./foo.json') work as expected even if the json is transformed to JS by a custom plugin by @IWANABETHATGUY in [#4984](#4984)
- feat: add diagnostic for multiple entries with UMD/IIFE formats by @shulaoda in [#4954](#4954)
### 🐛 Bug Fixes
- plugin/vite-resolve: fix(plugin/vite-resolve): importing an optional peer dep should throw an runtime error by @sapphi-red in [#4980](#4980)
- fix: upgrade napi, fix wasm url by @sxzz in [#4958](#4958)
- fix: should rewrite hmr related ast after test if `experimental.hmr` is enabled. by @IWANABETHATGUY in [#4972](#4972)
### 💼 Other
- build: provide `"type": "module"` in `package.json` by @iiio2 in [#4974](#4974)
### 🚜 Refactor
- binding: refactor(binding): rename `Bundler` to `BindingBundleImpl` by @hyf0 in [#4983](#4983)
- rolldown: refactor(rolldown): migrate to ESM package by @sxzz in [#4959](#4959)
### 📚 Documentation
- docs: explain how to transpile legacy decorators by @hyf0 in [#4989](#4989)
- code-splitting: docs(code-splitting): make terms bold instead of wrapped with inline code block by @hyf0 in [#4975](#4975)
- docs: improve advanced chunks by @hyf0 in [#4966](#4966)
- docs: refine code splitting guide by @sapphi-red in [#4969](#4969)
### 🧪 Testing
- test: place empty `package.json` to prevent all files to be treated as node mode by @sapphi-red in [#4979](#4979)
### ⚙️ Miscellaneous Tasks
- infra: chore(infra): ensure `pnpm install` for common commands by @hyf0 in [#4987](#4987)
- browser: chore(browser): add `@oxc-project/runtime` by @shulaoda in [#4988](#4988)
- deps: chore(deps): update dependency tsdown to v0.12.8 by @renovate[bot] in [#4977](#4977)
- deps: chore(deps): update npm packages (major) by @renovate[bot] in [#4963](#4963)
- deps: chore(deps): lock file maintenance npm packages by @renovate[bot] in [#4967](#4967)
- deps: chore(deps): lock file maintenance rust crates by @renovate[bot] in [#4965](#4965)
- deps: chore(deps): lock file maintenance npm packages by @renovate[bot] in [#4964](#4964)
- deps: chore(deps): update github-actions by @renovate[bot] in [#4962](#4962)
### ❤️ New Contributors
* @iiio2 made their first contribution in [#4974](#4974)
experimental.viteModeis enabled cc @sapphi-red, this is because our default behavior is aalignedwith esbuild and webpack already (Both of them prefer interop correctness, so do we), I am hesitant to enable it by default.Closed [Feature Request]: make
require('./foo.json')work as expected even if thejsonis transformed to JS by a custom plugin #3640