Ir al contenido
verdict:

Nuxt 4.0.0

featured

note: la síntesis y las notas de la versión están en inglés

warning: requiere intervención

8 breaking changes5 puntos clave

Nuxt 4.0 brings a new app/ directory, smarter data fetching and several breaking changes to review before upgrading.

síntesis · solo a partir de las notas de la versión · claude-haiku-5-5 · prompt v7

breaking changestodos citados, cada uno con su solución

breaking[1]: Nuxt 2 compatibility is removed from @nuxt/kit.

Nuxt 2 compatibility has been removed from @nuxt/kit. (This will particularly affect module authors.)

help: Check that your modules and any @nuxt/kit usage do not rely on Nuxt 2 support.

breaking[2]: Default compatibility version is now 4.

**schema:** ⚠️ Default to compatibilityVersion: 4 (#27710)

help: Check your compatibilityVersion setting and adjust code that relied on version 3 behaviour.

breaking[3]: Support for compatibilityVersion: 3 is removed.

**nuxt,schema:** ⚠️ Remove support for compatibilityVersion: 3 (#32255)

help: Set compatibilityVersion to 4 and fix anything that depended on version 3 behaviour.

breaking[4]: __NUXT__ is removed after hydration.

**nuxt:** ⚠️ Remove __NUXT__ after hydration (#27745)

help: Check code that reads window.__NUXT__ after hydration and use other available data instead.

breaking[5]: useAsyncData no longer reruns when data already exists.

**nuxt:** ⚠️ Don't rerun asyncdata w/ existing data in useAsyncData (#32170)

help: Check useAsyncData calls that expected a rerun on existing data and trigger a refresh explicitly if needed.

breaking[6]: The public and assets aliases are removed.

**nuxt:** ⚠️ Remove public and assets aliases (#32119)

help: Check code and config for imports that use the public and assets aliases and update them.

breaking[7]: #app/components/layout is renamed to #app/components/nuxt-layout.

**nuxt:** ⚠️ Move #app/components/layout -> #app/components/nuxt-layout (209e81b60)

help: Update imports from #app/components/layout to #app/components/nuxt-layout.

breaking[8]: The top level generate option is removed.

**schema:** ⚠️ Remove top level generate option (#32355)

help: Check your config for a top level generate option and move or remove it.

puntos clave

release-notesgithub.com/nuxt/nuxt · 317 líneas
  1. **Nuxt 4.0 is here!** 🎉
  2. After a year of real-world testing, we're excited to announce the official release of Nuxt 4. This is a stability-focused major release, introducing a few thoughtful breaking changes in order to improve development experience.
  3. If you've been following along, you'll recognize many of these features and changes — and if you're new to them, we hope you'll welcome them.
  4. ### 🔥 What's new?
  5. Nuxt 4 is all about making your development experience smoother:
  6. - **Cleaner project organization** with the new `app/` directory structure
  7. - **Smarter data fetching** - we've taken the opportunity to address some inconsistencies and improve performance with the data layer
  8. - **Better TypeScript support** with project-based separation between the different contexts in your project - app code, server code, `shared/` folder, and configuration
  9. - **Faster CLI and development** with adoption of internal sockets and a faster CLI
  10. Why these features in particular? Mostly because these kind of improvements have required making changes that are technically breaking.
  11. In general, we aim for a hype-free approach to releases. Rather than save up features for a big release, we've been shipping improvements in Nuxt 3 minor releases.
  12. We've also spent a lot of time figuring out how to implement these changes in a backwards-compatible way, and I hope that means that most Nuxt 3 projects can upgrade with a minimum of effort.
  13. I'd advise reading through the [upgrade guide](https://nuxt.com/docs/4.x/getting-started/upgrade) before you start, to understand what areas of your app might be affected.
  14. #### 🗂️ New project structure
  15. The biggest visible change is how projects are organized. Your application code now lives in an `app/` directory by default:
  16. ```bash
  17. my-nuxt-app/
  18. ├─ app/
  19. │ ├─ components/
  20. │ ├─ pages/
  21. │ ├─ layouts/
  22. │ └─ app.vue
  23. ├─ public/
  24. ├─ shared/
  25. ├─ server/
  26. └─ nuxt.config.ts
  27. ```
  28. This helps keep your code separate from `node_modules/` and `.git/`, which makes file watchers faster (especially on Windows and Linux). It also gives your IDE better context about whether you're working with client or server code.
  29. > [!TIP]
  30. > **Don't want to migrate?** That's totally fine! Nuxt will detect your existing structure and keep working exactly as before.
  31. ##### 🎨 Updated UI templates
  32. Nuxt’s starter templates have an all new look, with improved accessibility, default titles, and template polish ([#27843](https://github.com/nuxt/nuxt/pull/27843)).
  33. #### 🔄 Smarter data fetching
  34. We've made `useAsyncData` and `useFetch` work better. Multiple components using the same key now share their data automatically. There's also automatic cleanup when components unmount, and you can use reactive keys to refetch data when needed. Plus, we've given you more control over when cached data gets used.
  35. Some of these features have already been made available in Nuxt v3 minor releases, because we've been rolling this out gradually. Nuxt v4 brings different defaults, and we expect to continue to work on this data layer in the days to come.
  36. #### 🔧 Better TypeScript experience
  37. Nuxt now creates separate TypeScript projects for your app code, server code, `shared/` folder, and builder code. This should mean better autocompletion, more accurate type inference and fewer confusing errors when you're working in different contexts.
  38. > [!TIP]
  39. > With Nuxt 4, you will only need one `tsconfig.json` file in your project root!
  40. This is probably the single issue that is most likely to cause surprises when upgrading, but it should also make your TypeScript experience much smoother in the long run. Please report any issues you encounter. 🙏
  41. #### ⚡ Faster CLI and development
  42. In parallel with the release of v4, we've been working on speeding up `@nuxt/cli`.
  43. - **Faster cold starts** - Development server startup is noticeably faster
  44. - **Node.js compile cache** - Automatic reuse of the v8 compile cache
  45. - **Native file watching** - Uses `fs.watch` APIs for fewer system resources
  46. - **Socket-based communication** - The CLI and Vite dev server now communicate via internal sockets instead of network ports, reducing overhead — particularly on Windows
  47. These improvements combined can make a really noticeable difference in your day-to-day development experience, and we have more planned.
  48. ### 🚀 How to upgrade
  49. Although any major release brings breaking changes, one of our main aims for this release is to ensure that the upgrade path is as smooth as possible. Most of the breaking changes have been testable with a compatibility flag for over a year.
  50. Most projects should upgrade smoothly, but there are a few things to be aware of:
  51. - Nuxt 2 compatibility has been removed from `@nuxt/kit`. (This will particularly affect module authors.)
  52. - Some legacy utilities and deprecated features have been cleaned up.
  53. - The new TypeScript setup might surface some type issues that were hidden before.
  54. - A few modules might need further updates for full Nuxt 4 compatibility.
  55. Don't worry though — for most breaking changes, there are configuration options to revert to the old behavior while you adjust.
  56. #### 1. Update Nuxt
  57. Our recommendation for upgrading is to run:
  58. ```sh
  59. npx nuxt upgrade --dedupe
  60. ```
  61. This will deduplicate your lockfile as well, and help ensure that you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem.
  62. #### 2. Optional: use migration tools
  63. We’ve also partnered with [Codemod](https://github.com/codemod-com/codemod) to automate many, though not all, migration steps:
  64. ```bash
  65. npx codemod@latest nuxt/4/migration-recipe
  66. ```
  67. #### 3. Test and adjust
  68. Run your tests, check that everything builds correctly, and fix any issues that come up. The [upgrade guide](/docs/4.x/getting-started/upgrade) has detailed migration steps for specific scenarios.
  69. We'd recommend reading through it in full before starting your upgrade, to understand what areas of your app might be affected.
  70. ### 🗺️ What's next?
  71. We're planning quick patch releases to address any issues that come up. Nuxt 3 will continue to receive maintenance updates (both bug fixes and backports of features from Nuxt 4) until the end of January 2026, so there's no rush if you need time to migrate.
  72. Looking ahead, we plan to release Nuxt 5 on the sooner side, which will bring Nitro v3 and h3 v2 for even better performance, as well as adopting the Vite Environment API for an improved (and faster!) development experience. And there's a lot more in the works too!
  73. And, quite apart from major releases, we have a lot of exciting features planned to make their way into Nuxt 3.x and 4.x release branches, including support for SSR streaming ([#4753](https://github.com/nuxt/nuxt/issues/4753)), a first-party accessibility module ([#23255](https://github.com/nuxt/nuxt/issues/23255)), built-in fetch caching strategies ([#26017](https://github.com/nuxt/nuxt/issues/26017)), more strongly typed fetch calls (landing in Nitro v3), dynamic route discovery ([#32196](https://github.com/nuxt/nuxt/issues/32196)), multi-app support ([#21635](https://github.com/nuxt/nuxt/issues/21635)) and more.
  74. ### ❤️ Thank you
  75. This release is credit to so many people, particularly those who have been testing v4 compatibility mode over the past year. I'm really grateful — thank you for all your help!
  76. Happy coding with Nuxt 4! 🚀
  77. ## 👉 Changelog
  78. [compare changes](https://github.com/nuxt/nuxt/compare/v3.17.7...v4.0.0)
  79. ### 🚀 Enhancements
  80. - **ui-templates:** Update template branding for v4 ([#27843](https://github.com/nuxt/nuxt/pull/27843))
  81. - **deps:** Upgrade to latest versions of c12, jiti and unbuild ([#27995](https://github.com/nuxt/nuxt/pull/27995))
  82. - **kit:** Reimplement cjs utils using `mlly` ([#28012](https://github.com/nuxt/nuxt/pull/28012))
  83. - **nuxt:** Generate basic jsdoc for module config entry ([#27689](https://github.com/nuxt/nuxt/pull/27689))
  84. - **schema:** Split dev/prod build directories ([#28594](https://github.com/nuxt/nuxt/pull/28594))
  85. - **nuxt:** Cache vue app build outputs ([#28726](https://github.com/nuxt/nuxt/pull/28726))
  86. - **deps:** Update dependency vite to v6 (main) ([#30042](https://github.com/nuxt/nuxt/pull/30042))
  87. - **nuxt:** Add integration with chrome devtools workspaces ([#32084](https://github.com/nuxt/nuxt/pull/32084))
  88. - **kit:** Support single import in `addServerImports` ([#32289](https://github.com/nuxt/nuxt/pull/32289))
  89. - **nuxt:** Add `onWatcherCleanup` to imports presets ([#32396](https://github.com/nuxt/nuxt/pull/32396))
  90. - **kit,nuxt,schema:** Separate ts projects for node/app/nitro ([#30665](https://github.com/nuxt/nuxt/pull/30665))
  91. - **nuxt:** Support lazy hydration macros ([#31192](https://github.com/nuxt/nuxt/pull/31192))
  92. - **nuxt:** Export `<NuxtTime>` prop types ([#32547](https://github.com/nuxt/nuxt/pull/32547))
  93. - **nuxt:** Add route announcer to default app.vue ([#32621](https://github.com/nuxt/nuxt/pull/32621))
  94. - **nuxt:** Expose page routes to nitro for o11y ([#32617](https://github.com/nuxt/nuxt/pull/32617))
  95. ### 🔥 Performance
  96. - **nuxt:** ⚠️ Don't call `render:html` for server islands ([#27889](https://github.com/nuxt/nuxt/pull/27889))
  97. - **vite:** Don't write stub manifest for legacy bundler ([#27957](https://github.com/nuxt/nuxt/pull/27957))
  98. - **kit:** Update env expansion regex to match nitro ([#30766](https://github.com/nuxt/nuxt/pull/30766))
  99. - **vite:** Communicate with vite-node via internal socket ([#32417](https://github.com/nuxt/nuxt/pull/32417))
  100. ### 🩹 Fixes
  101. - **schema,vite:** ⚠️ Do not allow configuring vite dev bundler ([#27707](https://github.com/nuxt/nuxt/pull/27707))
  102. - **schema:** ⚠️ Default to `compatibilityVersion: 4` ([#27710](https://github.com/nuxt/nuxt/pull/27710))
  103. - **nuxt:** ⚠️ Emit absolute paths in `builder:watch` hook ([#27709](https://github.com/nuxt/nuxt/pull/27709))
  104. - **nuxt:** ⚠️ Improve default `asyncData` value behaviour ([#27718](https://github.com/nuxt/nuxt/pull/27718))
  105. - **nuxt:** ⚠️ Remove old experimental options ([#27749](https://github.com/nuxt/nuxt/pull/27749))
  106. - **kit:** ⚠️ Support loading nuxt 4 and drop support for <=2 ([#27837](https://github.com/nuxt/nuxt/pull/27837))
  107. - **nuxt:** ⚠️ Remove `__NUXT__` after hydration ([#27745](https://github.com/nuxt/nuxt/pull/27745))
  108. - **ui-templates:** Add default title back ([3415241a6](https://github.com/nuxt/nuxt/commit/3415241a6))
  109. - **kit:** ⚠️ Drop support for building nuxt 2 projects ([1beddba6a](https://github.com/nuxt/nuxt/commit/1beddba6a))
  110. - **nuxt:** ⚠️ Bump internal majorVersion to `4` ([7aae4033b](https://github.com/nuxt/nuxt/commit/7aae4033b))
  111. - **kit:** Mark `resolvePath` utils as sync ([655e1473d](https://github.com/nuxt/nuxt/commit/655e1473d))
  112. - **kit:** Revert change to `tryResolveModule` ([2d136e04c](https://github.com/nuxt/nuxt/commit/2d136e04c))
  113. - **kit:** Add back `requireModule` and `tryRequireModule` ([#28013](https://github.com/nuxt/nuxt/pull/28013))
  114. - **nuxt:** Hide unhandled error messages in prod ([#28156](https://github.com/nuxt/nuxt/pull/28156))
  115. - **nuxt:** Add `useScriptCrisp` scripts stub ([0c3cc4cf3](https://github.com/nuxt/nuxt/commit/0c3cc4cf3))
  116. - **nuxt:** ⚠️ Remove unused `globalName` property ([#28391](https://github.com/nuxt/nuxt/pull/28391))
  117. - **nuxt:** Use static import for `updateAppConfig` in HMR ([#28349](https://github.com/nuxt/nuxt/pull/28349))
  118. - **vite:** Write dev manifest when `ssr: false` ([#28488](https://github.com/nuxt/nuxt/pull/28488))
  119. - **kit,nuxt,schema:** ⚠️ Remove other support for nuxt2/bridge ([#28936](https://github.com/nuxt/nuxt/pull/28936))
  120. - **webpack:** Only insert dynamic require plugin when building ([b619b35e9](https://github.com/nuxt/nuxt/commit/b619b35e9))
  121. - **nuxt:** Guard `window` access ([d874726ff](https://github.com/nuxt/nuxt/commit/d874726ff))
  122. - **nuxt:** Remove unneeded subpath import ([18a6ef1ca](https://github.com/nuxt/nuxt/commit/18a6ef1ca))
  123. - **webpack:** Handle new webpack chunk format ([d293c06d2](https://github.com/nuxt/nuxt/commit/d293c06d2))
  124. - **kit:** ⚠️ Do not check compatibility for nuxt version < 2.13 ([f94cda4c8](https://github.com/nuxt/nuxt/commit/f94cda4c8))
  125. - **ui-templates:** Fix examples link and add bluesky ([#30866](https://github.com/nuxt/nuxt/pull/30866))
  126. - **vite:** Use `resolveId` from `vite-node` to resolve deps ([#30922](https://github.com/nuxt/nuxt/pull/30922))
  127. - **nuxt:** Import `isEqual` from main `ohash` export ([3ec1a1e5e](https://github.com/nuxt/nuxt/commit/3ec1a1e5e))
  128. - **vite:** Don't set `output.preserveModules` ([ce49734aa](https://github.com/nuxt/nuxt/commit/ce49734aa))
  129. - **nuxt:** Ignore `#app-manifest` import in dev mode ([#31539](https://github.com/nuxt/nuxt/pull/31539))
  130. - **nuxt:** Ensure layer array-type config is merged in order ([#31507](https://github.com/nuxt/nuxt/pull/31507))
  131. - **schema:** Turn off `purgeCachedData` until v4 ([7aa3a01ae](https://github.com/nuxt/nuxt/commit/7aa3a01ae))
  132. - **schema:** Re-enable `purgeCachedData` by default ([06745604c](https://github.com/nuxt/nuxt/commit/06745604c))
  133. - **webpack:** Expand dynamic require regexp to match new pattern ([62e700daa](https://github.com/nuxt/nuxt/commit/62e700daa))
  134. - **nuxt:** Add back missing reset of `.execute` ([d79e14612](https://github.com/nuxt/nuxt/commit/d79e14612))
  135. - **nuxt,schema:** ⚠️ Remove support for `compatibilityVersion: 3` ([#32255](https://github.com/nuxt/nuxt/pull/32255))
  136. - **kit,nuxt,schema,vite:** ⚠️ Remove support for some deprecated options ([#32257](https://github.com/nuxt/nuxt/pull/32257))
  137. - **nuxt:** ⚠️ Don't rerun asyncdata w/ existing data in `useAsyncData` ([#32170](https://github.com/nuxt/nuxt/pull/32170))
  138. - **nuxt:** Scan nitro handlers before writing types ([a3698c08b](https://github.com/nuxt/nuxt/commit/a3698c08b))
  139. - **nuxt:** Force asyncData `errorValue`/`value` to be undefined ([7e4eac655](https://github.com/nuxt/nuxt/commit/7e4eac655))
  140. - **nuxt:** ⚠️ Remove public and assets aliases ([#32119](https://github.com/nuxt/nuxt/pull/32119))
  141. - **webpack:** Update dynamic require pattern ([#32278](https://github.com/nuxt/nuxt/pull/32278))
  142. - **schema:** ⚠️ Remove top level generate option ([#32355](https://github.com/nuxt/nuxt/pull/32355))
  143. - **ui-templates:** Add aria tag on Nuxt logo ([#32429](https://github.com/nuxt/nuxt/pull/32429))
  144. - **nuxt:** Augment runtime config in server context ([#32482](https://github.com/nuxt/nuxt/pull/32482))
  145. - **kit:** Do not skip layer with defined `srcDir` ([#32487](https://github.com/nuxt/nuxt/pull/32487))
  146. - **deps:** Upgrade to rc version of `@nuxt/cli` ([#32488](https://github.com/nuxt/nuxt/pull/32488))
  147. - **kit:** Ensure legacy `tsConfig` doesn't exclude too many types ([#32528](https://github.com/nuxt/nuxt/pull/32528))
  148. - **kit:** Ensure types of module entrypoints are in node project ([#32551](https://github.com/nuxt/nuxt/pull/32551))
  149. - **kit:** Add layer `app/` and `server/` folders into tsconfigs ([#32592](https://github.com/nuxt/nuxt/pull/32592))
  150. - **schema:** Disable changing compat version ([#32600](https://github.com/nuxt/nuxt/pull/32600))
  151. - **nuxt:** Allow modules to add to `typescript.hoist` ([#32601](https://github.com/nuxt/nuxt/pull/32601))
  152. - **nuxt:** Include shared declarations in `tsconfig.server.json` ([#32594](https://github.com/nuxt/nuxt/pull/32594))
  153. - **nuxt:** Retain old data when computed key changes ([#32616](https://github.com/nuxt/nuxt/pull/32616))
  154. - **nuxt:** ⚠️ Bump `compatibilityDate` to `2025-07-15` ([e35e1ccb9](https://github.com/nuxt/nuxt/commit/e35e1ccb9))
  155. - **nuxt:** Only use `scrollBehaviorType` for hash scrolling ([#32622](https://github.com/nuxt/nuxt/pull/32622))
  156. ### 💅 Refactors
  157. - **kit,nuxt:** ⚠️ Drop nuxt 2 + ejs template compile support ([#27706](https://github.com/nuxt/nuxt/pull/27706))
  158. - **nuxt:** ⚠️ Move `#app/components/layout` -> `#app/components/nuxt-layout` ([209e81b60](https://github.com/nuxt/nuxt/commit/209e81b60))
  159. - **kit,nuxt,vite,webpack:** ⚠️ Remove legacy require utils ([#28008](https://github.com/nuxt/nuxt/pull/28008))
  160. - **nuxt:** Simplify check of `dedupe` option ([#28151](https://github.com/nuxt/nuxt/pull/28151))
  161. - **nuxt:** Use direct import of `installNuxtModule` ([501ccc375](https://github.com/nuxt/nuxt/commit/501ccc375))
  162. - **kit:** Remove internal function ([#32189](https://github.com/nuxt/nuxt/pull/32189))
  163. - **schema:** ⚠️ Remove config.schema.json export + defaults ([#32254](https://github.com/nuxt/nuxt/pull/32254))
  164. - **nuxt:** Migrate to `oxc-walker` ([#32250](https://github.com/nuxt/nuxt/pull/32250))
  165. - **nuxt,schema:** Use oxc for `onPrehydrate` transform ([#32045](https://github.com/nuxt/nuxt/pull/32045))
  166. ### 📖 Documentation
  167. - Indicate what `useAsyncData` must return ([#28259](https://github.com/nuxt/nuxt/pull/28259))
  168. - Update `deep` default for `useAsyncData` & `useFetch` ([#28564](https://github.com/nuxt/nuxt/pull/28564))
  169. - Fix link to issue ([4d13f1027](https://github.com/nuxt/nuxt/commit/4d13f1027))
  170. - Improve wording for `deep` option ([bec85dfcd](https://github.com/nuxt/nuxt/commit/bec85dfcd))
  171. - Update v4 docs with new folder structure ([#32348](https://github.com/nuxt/nuxt/pull/32348))
  172. - Update `.nuxtignore` examples for v4 structure ([#32489](https://github.com/nuxt/nuxt/pull/32489))
  173. - Add reference to `useNuxtData` in data fetching composable pages ([#32589](https://github.com/nuxt/nuxt/pull/32589))
  174. - Temporarily use v4 template for v4 docs ([850a879d3](https://github.com/nuxt/nuxt/commit/850a879d3))
  175. - Document the --modules flag in the init command ([#32599](https://github.com/nuxt/nuxt/pull/32599))
  176. ### 📦 Build
  177. - **deps:** Bump esbuild from 0.23.1 to 0.25.0 ([#31247](https://github.com/nuxt/nuxt/pull/31247))
  178. ### 🏡 Chore
  179. - Manage update to `vite-plugin-checker` separately ([02d46dd3d](https://github.com/nuxt/nuxt/commit/02d46dd3d))
  180. - Update docs typecheck command ([#28433](https://github.com/nuxt/nuxt/pull/28433))
  181. - Improve accuracy of 4.x changelog ([#28706](https://github.com/nuxt/nuxt/pull/28706))
  182. - Bump package versions internally to v4 ([16fab7778](https://github.com/nuxt/nuxt/commit/16fab7778))
  183. - **kit:** Fix regressed version v4 ([a1c052057](https://github.com/nuxt/nuxt/commit/a1c052057))
  184. - Dedupe lockfile ([f14ef6bc9](https://github.com/nuxt/nuxt/commit/f14ef6bc9))
  185. - Update once more ([4d22f4d5a](https://github.com/nuxt/nuxt/commit/4d22f4d5a))
  186. - Specify workspace `engines.node` compatibility ([a26322f5f](https://github.com/nuxt/nuxt/commit/a26322f5f))
  187. - Remove special treatment for typescript ([08766a0cd](https://github.com/nuxt/nuxt/commit/08766a0cd))
  188. - Reenable quarantine for webpack/memfs (for 3.x benefit) ([9cb94e55e](https://github.com/nuxt/nuxt/commit/9cb94e55e))
  189. - Remove extra dep ([f0ec34298](https://github.com/nuxt/nuxt/commit/f0ec34298))
  190. - Add back `nuxi` ([9aa4c7c3b](https://github.com/nuxt/nuxt/commit/9aa4c7c3b))
  191. - Remove stray `nuxi` version again ([#30547](https://github.com/nuxt/nuxt/pull/30547))
  192. - Fix lockfile ([7d345c714](https://github.com/nuxt/nuxt/commit/7d345c714))
  193. - Remove second version of vitest ([#30868](https://github.com/nuxt/nuxt/pull/30868))
  194. - Ignore `oxc-parser` updates temporarily ([1cd0fb5cb](https://github.com/nuxt/nuxt/commit/1cd0fb5cb))
  195. - Ignore `nitro/templates` directory ([e531477f8](https://github.com/nuxt/nuxt/commit/e531477f8))
  196. - Fix ui-templates build ([c8a1b9e80](https://github.com/nuxt/nuxt/commit/c8a1b9e80))
  197. - Mkdir for ui-templates ([853408a1e](https://github.com/nuxt/nuxt/commit/853408a1e))
  198. - Add webpack resolution ([088bcd459](https://github.com/nuxt/nuxt/commit/088bcd459))
  199. - Migrate playground + test fixtures to new directory format ([#32357](https://github.com/nuxt/nuxt/pull/32357))
  200. - **schema:** Remove duplicated documentation ([349f75447](https://github.com/nuxt/nuxt/commit/349f75447))
  201. ### ✅ Tests
  202. - Remove unused experimental options ([6d971ddc9](https://github.com/nuxt/nuxt/commit/6d971ddc9))
  203. - Add additional `attw` test for built packages ([#30206](https://github.com/nuxt/nuxt/pull/30206))
  204. - Add minimal pages fixture ([#30457](https://github.com/nuxt/nuxt/pull/30457))
  205. - Update bundle size assertion ([f458153d9](https://github.com/nuxt/nuxt/commit/f458153d9))
  206. - Update bundle size assertion ([4cce6bf8d](https://github.com/nuxt/nuxt/commit/4cce6bf8d))
  207. - Benchmark minimal fixture instead ([#31174](https://github.com/nuxt/nuxt/pull/31174))
  208. - Normalise scoped css + pass logger to `configResolved` ([8d3bd4f9f](https://github.com/nuxt/nuxt/commit/8d3bd4f9f))
  209. - More precise asyncData tests ([023fb13eb](https://github.com/nuxt/nuxt/commit/023fb13eb))
  210. - Extend timeout when waiting for hydration ([f34c6c240](https://github.com/nuxt/nuxt/commit/f34c6c240))
  211. - Also assert status ([4f6bdf755](https://github.com/nuxt/nuxt/commit/4f6bdf755))
  212. ### 🤖 CI
  213. - Bump node v22 ([#30251](https://github.com/nuxt/nuxt/pull/30251))
  214. - Run workflows on merge groups ([ff37ad9df](https://github.com/nuxt/nuxt/commit/ff37ad9df))
  215. - Do not invoke semantic-pr test on merge groups ([fadd618d1](https://github.com/nuxt/nuxt/commit/fadd618d1))
  216. #### ⚠️ Breaking Changes
  217. - **nuxt:** ⚠️ Don't call `render:html` for server islands ([#27889](https://github.com/nuxt/nuxt/pull/27889))
  218. - **schema,vite:** ⚠️ Do not allow configuring vite dev bundler ([#27707](https://github.com/nuxt/nuxt/pull/27707))
  219. - **schema:** ⚠️ Default to `compatibilityVersion: 4` ([#27710](https://github.com/nuxt/nuxt/pull/27710))
  220. - **nuxt:** ⚠️ Emit absolute paths in `builder:watch` hook ([#27709](https://github.com/nuxt/nuxt/pull/27709))
  221. - **nuxt:** ⚠️ Improve default `asyncData` value behaviour ([#27718](https://github.com/nuxt/nuxt/pull/27718))
  222. - **nuxt:** ⚠️ Remove old experimental options ([#27749](https://github.com/nuxt/nuxt/pull/27749))
  223. - **kit:** ⚠️ Support loading nuxt 4 and drop support for <=2 ([#27837](https://github.com/nuxt/nuxt/pull/27837))
  224. - **nuxt:** ⚠️ Remove `__NUXT__` after hydration ([#27745](https://github.com/nuxt/nuxt/pull/27745))
  225. - **kit:** ⚠️ Drop support for building nuxt 2 projects ([1beddba6a](https://github.com/nuxt/nuxt/commit/1beddba6a))
  226. - **nuxt:** ⚠️ Bump internal majorVersion to `4` ([7aae4033b](https://github.com/nuxt/nuxt/commit/7aae4033b))
  227. - **nuxt:** ⚠️ Remove unused `globalName` property ([#28391](https://github.com/nuxt/nuxt/pull/28391))
  228. - **kit,nuxt,schema:** ⚠️ Remove other support for nuxt2/bridge ([#28936](https://github.com/nuxt/nuxt/pull/28936))
  229. - **kit:** ⚠️ Do not check compatibility for nuxt version < 2.13 ([f94cda4c8](https://github.com/nuxt/nuxt/commit/f94cda4c8))
  230. - **nuxt,schema:** ⚠️ Remove support for `compatibilityVersion: 3` ([#32255](https://github.com/nuxt/nuxt/pull/32255))
  231. - **kit,nuxt,schema,vite:** ⚠️ Remove support for some deprecated options ([#32257](https://github.com/nuxt/nuxt/pull/32257))
  232. - **nuxt:** ⚠️ Don't rerun asyncdata w/ existing data in `useAsyncData` ([#32170](https://github.com/nuxt/nuxt/pull/32170))
  233. - **nuxt:** ⚠️ Remove public and assets aliases ([#32119](https://github.com/nuxt/nuxt/pull/32119))
  234. - **schema:** ⚠️ Remove top level generate option ([#32355](https://github.com/nuxt/nuxt/pull/32355))
  235. - **nuxt:** ⚠️ Bump `compatibilityDate` to `2025-07-15` ([e35e1ccb9](https://github.com/nuxt/nuxt/commit/e35e1ccb9))
  236. - **kit,nuxt:** ⚠️ Drop nuxt 2 + ejs template compile support ([#27706](https://github.com/nuxt/nuxt/pull/27706))
  237. - **nuxt:** ⚠️ Move `#app/components/layout` -> `#app/components/nuxt-layout` ([209e81b60](https://github.com/nuxt/nuxt/commit/209e81b60))
  238. - **kit,nuxt,vite,webpack:** ⚠️ Remove legacy require utils ([#28008](https://github.com/nuxt/nuxt/pull/28008))
  239. - **schema:** ⚠️ Remove config.schema.json export + defaults ([#32254](https://github.com/nuxt/nuxt/pull/32254))
  240. ### ❤️ Contributors
  241. - Daniel Roe (@danielroe)
  242. - Connor Pearson (@cjpearson)
  243. - Stephen Jason Wang (@stephenjason89)
  244. - dwood-csi (@dwood-csi)
  245. - Alex (@hywax)
  246. - Alex Liu (@Mini-ghost)
  247. - Bobbie Goede (@BobbieGoede)
  248. - Marko (@aussieboi)
  249. - Igor Kononenko (@igorexa34314)
  250. - Alexander Lichter (@TheAlexLichter)
  251. - Robin (@OrbisK)
  252. - Matej Černý (@cernymatej)
  253. - Michael Brevard (@GalacticHypernova)
  254. - Andrej Adamcik (@adamcikado)
  255. - dependabot[bot] (@dependabot[bot])
  256. - Sébastien Chopin (@atinux)
  257. - Yauheni Vasiukevich (@EvgenyWas)
  258. - @beer (@iiio2)
  259. - Anthony Fu (@antfu)
  260. - pan93412 (@pan93412)
  261. - Tobias Diez (@tobiasdiez)
  262. - Aleksei Nagovitsyn (@al3xnag)
  263. - xjccc (@xjccc)
  264. - Julien Huang (@huang-julien)

ver en githubimported 2026-09-28 vía npm