Ir al contenido
verdict:

Nuxt 4.3.0

notable

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

note: sin síntesis para esta release más antigua

Sintetizamos las releases recientes. Las notas de la versión originales de esta versión están aquí abajo.

release-notesgithub.com/nuxt/nuxt · 471 líneas
  1. > 4.3.0 is the next minor release.
  2. Nuxt 4.3 brings powerful new features for layouts, caching, and developer experience – plus significant performance improvements under the hood.
  3. ## 📣 Some News
  4. ### Extended v3 Support
  5. Early this month, I [opened a discussion](https://github.com/nuxt/nuxt/discussions/33918) to find out how the upgrade had gone from v3 to v4. I was really pleased to hear how well it had gone for most people.
  6. Having said that, we're committed to making sure no one gets left behind. And so we will **continue to provide security updates and critical bug fix releases** beyond the previously announced end-of-life date of January 31, 2026, meaning Nuxt v3 will meet its end-of-life on July 31, 2026.
  7. > [!TIP]
  8. > As usual, today also brings a minor release for v3, with many of the same improvements backported from v4.3.
  9. ### Preparing for Nuxt 5
  10. We're closer than ever to the releases of Nuxt v5 and Nitro v3. In the coming weeks, the `main` branch of the Nuxt repository will begin receiving initial commits for Nuxt 5. However, it's still **business as usual**.
  11. - Continue making pull requests to the `main` branch
  12. - We'll backport changes to the `4.x` and `3.x` branches
  13. Keep an eye out on the [Upgrade Guide](https://nuxt.com/docs/4.x/getting-started/upgrade) – we'll be adding details about how you can already start migrating your projects to prepare for Nuxt v4 with `future.compatibilityVersion: 5`.
  14. ## 🗂️ Route Rule Layouts
  15. But that's enough about the future. We have a lot of good things for you today!
  16. First, you can now set layouts directly in route rules using the new `appLayout` property ([#31092](https://github.com/nuxt/nuxt/pull/31092)). This provides a centralized, declarative way to manage layouts across your application without scattering `definePageMeta` calls throughout your pages.
  17. ```ts [nuxt.config.ts]
  18. export default defineNuxtConfig({
  19. routeRules: {
  20. '/admin/**': { appLayout: 'admin' },
  21. '/dashboard/**': { appLayout: 'dashboard' },
  22. '/auth/**': { appLayout: 'minimal' }
  23. }
  24. })
  25. ```
  26. This might be useful for:
  27. - Admin panels with a shared layout across many routes
  28. - Marketing pages that need a different layout from the app
  29. > [!TIP]
  30. > Plus, you can pass props to layouts now! See [the `setPageLayout` improvements below](#layout-props-with-setpagelayout).
  31. ## 📦 ISR/SWR Payload Extraction
  32. Payload extraction now works with ISR (incremental static regeneration), SWR (stale-while-revalidate) and cache `routeRules` ([#33467](https://github.com/nuxt/nuxt/pull/33467)). Previously, only pre-rendered pages could generate `_payload.json` files.
  33. This means:
  34. - Client-side navigation to ISR/SWR pages can use cached payloads
  35. - CDNs (Vercel, Netlify, Cloudflare) can cache payload files alongside HTML
  36. - Fewer API calls during navigation – data can be prefetched and served from the cached payload
  37. ```ts [nuxt.config.ts]
  38. export default defineNuxtConfig({
  39. routeRules: {
  40. '/products/**': {
  41. isr: 3600, // Revalidate every hour
  42. }
  43. }
  44. })
  45. ```
  46. ## 🧹 Dev Mode Payload Extraction
  47. Related to the above, payload extraction now also works in development mode ([#30784](https://github.com/nuxt/nuxt/pull/30784)). This makes it easier to test and debug payload behavior without needing to run a production build.
  48. > [!IMPORTANT]
  49. > Payload extraction works in dev mode with `nitro.static` set to `true`, or for individual pages which have `isr`, `swr`, `prerender` or `cache` route rules.
  50. ## 🚫 Disable Modules from Layers
  51. When extending Nuxt layers, you can now disable specific modules that you don't need ([#33883](https://github.com/nuxt/nuxt/pull/33883)). Just pass `false` to the module's options:
  52. ```ts [nuxt.config.ts]
  53. export default defineNuxtConfig({
  54. extends: ['../shared-layer'],
  55. // disable @nuxt/image from layer
  56. image: false,
  57. })
  58. ```
  59. ## 🏷️ Route Groups in Page Meta
  60. [Route groups](https://nuxt.com/docs/4.x/directory-structure/app/pages#route-groups) (folders wrapped in parentheses like `(protected)/`) are now exposed in page meta ([#33460](https://github.com/nuxt/nuxt/pull/33460)). This makes it easy to check which groups a route belongs to in middleware or anywhere you have access to the route.
  61. ```vue [pages/(protected)/dashboard.vue]
  62. <script setup lang="ts">
  63. // This page's meta will include: { groups: ['protected'] }
  64. useRoute().meta.groups
  65. </script>
  66. ```
  67. ```ts [middleware/auth.ts]
  68. export default defineNuxtRouteMiddleware((to) => {
  69. if (to.meta.groups?.includes('protected') && !isAuthenticated()) {
  70. return navigateTo('/login')
  71. }
  72. })
  73. ```
  74. This provides a clean, convention-based approach to route-level authorization without needing to add `definePageMeta` to every protected page.
  75. ## 🎨 Layout Props with `setPageLayout`
  76. The `setPageLayout` composable now accepts a second parameter to pass props to your layout ([#33805](https://github.com/nuxt/nuxt/pull/33805)):
  77. ```ts [middleware/admin.ts]
  78. export default defineNuxtRouteMiddleware((to) => {
  79. setPageLayout('admin', {
  80. sidebar: true,
  81. theme: 'dark'
  82. })
  83. })
  84. ```
  85. ```vue [layouts/admin.vue]
  86. <script setup lang="ts">
  87. defineProps<{
  88. sidebar?: boolean
  89. theme?: 'light' | 'dark'
  90. }>()
  91. </script>
  92. ```
  93. ## 🔧 `#server` Alias
  94. A new `#server` alias provides clean imports within your server directory ([#33870](https://github.com/nuxt/nuxt/pull/33870)), similar to how `#shared` works:
  95. ```ts [server/api/users/[id]/profile.ts]
  96. // Before: relative path hell
  97. import { helper } from '../../../../utils/helper'
  98. // After: clean and predictable
  99. import { helper } from '#server/utils/helper'
  100. ```
  101. The alias includes import protection &ndash; you can't accidentally import `#server` code from client or shared contexts.
  102. ## 🪟 Draggable Error Overlay
  103. The development error overlay introduced in Nuxt 4.2 is now draggable and can be minimized ([#33695](https://github.com/nuxt/nuxt/pull/33695)). You can:
  104. - Drag it to any corner of the screen (it snaps to edges)
  105. - Minimize it to a small pill button when you want to keep working
  106. - Your position and minimized state persist across page reloads
  107. This is a quality-of-life improvement when you're iterating on fixes and don't want the overlay blocking your view.
  108. https://github.com/user-attachments/assets/nuxt_4-3_error_demo.mp4
  109. ## ⚙️ Async Plugin Constructors
  110. Module authors can now use async functions when adding build plugins ([#33619](https://github.com/nuxt/nuxt/pull/33619)):
  111. ```ts [modules/my-module.ts]
  112. export default defineNuxtModule({
  113. async setup() {
  114. // Lazy load only when actually needed
  115. addVitePlugin(() => import('my-cool-plugin').then(r => r.default()))
  116. // No need to load webpack plugin if using Vite
  117. addWebpackPlugin(() => import('my-cool-plugin/webpack').then(r => r.default()))
  118. }
  119. })
  120. ```
  121. This enables true lazy loading of build plugins, avoiding unnecessary code loading when plugins aren't needed.
  122. ## 🚀 Performance Improvements
  123. This release includes several performance optimizations for faster builds:
  124. - **Hook filters** - Internal plugins now use filters to avoid running hooks unnecessarily ([#33898](https://github.com/nuxt/nuxt/pull/33898))
  125. - **SSR styles optimization** - The `nuxt:ssr-styles` plugin is now significantly faster ([#33862](https://github.com/nuxt/nuxt/pull/33862), [#33865](https://github.com/nuxt/nuxt/pull/33865))
  126. - **Layer alias transform** - Skipped when using Vite (it handles this natively) ([#33864](https://github.com/nuxt/nuxt/pull/33864))
  127. - **Route rules compilation** - Route rules are now compiled into a client chunk using `rou3`, removing the need for `radix3` in the client bundle and eliminating app manifest fetches ([#33920](https://github.com/nuxt/nuxt/pull/33920))
  128. ## 🎨 Inline Styles for Webpack/Rspack
  129. The `inlineStyles` feature now works with webpack and rspack builders ([#33966](https://github.com/nuxt/nuxt/pull/33966)), not just Vite. This enables critical CSS inlining for better Core Web Vitals regardless of your bundler choice.
  130. ## ⚠️ Deprecations
  131. ### `statusCode` → `status`, `statusMessage` → `statusText`
  132. In preparation for Nitro v3 and H3 v2, we're moving to use Web API naming conventions ([#33912](https://github.com/nuxt/nuxt/pull/33912)). The old properties still work but are deprecated in advance of v5:
  133. ```diff
  134. - throw createError({ statusCode: 404, statusMessage: 'Not Found' })
  135. + throw createError({ status: 404, statusText: 'Not Found' })
  136. ```
  137. ## 🐛 Bug Fixes
  138. Notable fixes in this release:
  139. - Fixed head component deduplication using `key` attribute ([#33958](https://github.com/nuxt/nuxt/pull/33958), [#33963](https://github.com/nuxt/nuxt/pull/33963))
  140. - Fixed async data properties not being reactive in Options API ([#34119](https://github.com/nuxt/nuxt/pull/34119))
  141. - Fixed `useCookie` unsafe number parsing during decode ([#34007](https://github.com/nuxt/nuxt/pull/34007))
  142. - Fixed `NuxtPage` not re-rendering when nested `NuxtLayout` has layouts disabled ([#34078](https://github.com/nuxt/nuxt/pull/34078))
  143. - Fixed client-side pathname decoding for non-ASCII route aliases ([#34043](https://github.com/nuxt/nuxt/pull/34043))
  144. - Fixed suspense remounting when navigating after pending state ([#33991](https://github.com/nuxt/nuxt/pull/33991))
  145. - Fixed clipboard copy in error overlay ([#33873](https://github.com/nuxt/nuxt/pull/33873))
  146. - Enabled `allowArbitraryExtensions` by default in TypeScript config ([#34084](https://github.com/nuxt/nuxt/pull/34084))
  147. - Added `noUncheckedIndexedAccess` to server tsconfig for safer typing ([#33985](https://github.com/nuxt/nuxt/pull/33985))
  148. > [!IMPORTANT]
  149. > Enabling `noUncheckedIndexedAccess` in the Nitro server TypeScript config improves type safety but may surface new type errors in your server code. This change was necessary because Nuxt's app context performs type checks on server routes ([learn more](https://nuxt.com/docs/4.x/guide/modules/recipes-advanced#known-limitations)).
  150. >
  151. > While we recommend keeping this enabled for better type safety, you can disable it if needed:
  152. >
  153. > ```ts
  154. > export default defineNuxtConfig({
  155. > nitro: {
  156. > typescript: {
  157. > tsConfig: {
  158. > compilerOptions: {
  159. > noUncheckedIndexedAccess: false
  160. > }
  161. > }
  162. > }
  163. > }
  164. > })
  165. > ```
  166. >
  167. > Note that disabling this may allow type errors to slip through that could cause runtime issues with indexed access.
  168. ## 📚 Documentation
  169. - Improved module author guides with clearer structure ([#33803](https://github.com/nuxt/nuxt/pull/33803))
  170. - Added MCP setup instructions for Claude Desktop ([#33914](https://github.com/nuxt/nuxt/pull/33914))
  171. - Added layers directory documentation ([#33967](https://github.com/nuxt/nuxt/pull/33967))
  172. - Added Deno package manager examples ([#34070](https://github.com/nuxt/nuxt/pull/34070))
  173. - Clarified type-checking context limitations for server routes ([#33964](https://github.com/nuxt/nuxt/pull/33964))
  174. ## 🎉 Nuxt 3.21.0
  175. Alongside v4.3.0, we're releasing **Nuxt v3.21.0** with many of the same improvements backported to the 3.x branch. This release includes:
  176. - **All the same features**: Route rule layouts, ISR payload extraction, layout props with `setPageLayout`, `#server` alias, draggable error overlay, and more
  177. - **All performance improvements**: SSR styles optimization, hook filters, and route rules compilation
  178. - **Module disabling**: Disable layer modules by setting options to `false`
  179. - **Critical bug fixes**: Async data reactivity in Options API, `useCookie` number parsing, head component deduplication, and more
  180. ## ✅ Upgrading
  181. Our recommendation for upgrading is to run:
  182. ```sh
  183. npx nuxt upgrade --dedupe
  184. # or, if you are upgrading to v3.21
  185. npx nuxt@latest upgrade --dedupe --channel=v3
  186. ```
  187. This will deduplicate your lockfile and help ensure you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem.
  188. > [!TIP]
  189. > Check out our [upgrade guide](https://nuxt.com/docs/getting-started/upgrade) if upgrading from an older version.
  190. ## 👉 Changelog
  191. [compare changes](https://github.com/nuxt/nuxt/compare/v4.2.2...v4.3.0)
  192. ### 🚀 Enhancements
  193. - **kit:** Support async constructor for adding plugins ([#33619](https://github.com/nuxt/nuxt/pull/33619))
  194. - **kit:** Export Nuxt major version type ([#33700](https://github.com/nuxt/nuxt/pull/33700))
  195. - **schema:** Add `#server` alias for server directory imports ([#33870](https://github.com/nuxt/nuxt/pull/33870))
  196. - **ui-templates:** Let it snow! ❄️ ([#33804](https://github.com/nuxt/nuxt/pull/33804))
  197. - **schema:** Hoist nitro `crossws` types ([5b16a51f5](https://github.com/nuxt/nuxt/commit/5b16a51f5))
  198. - **nitro,nuxt:** Compile route rules into client chunk ([#33920](https://github.com/nuxt/nuxt/pull/33920))
  199. - **nuxt:** Allow disabling modules by setting module options to `false` ([#33883](https://github.com/nuxt/nuxt/pull/33883))
  200. - **kit:** Allow specifying `moduleDependencies` as an async function ([#33504](https://github.com/nuxt/nuxt/pull/33504))
  201. - **nuxt:** Support `appLayout` in route rules ([#31092](https://github.com/nuxt/nuxt/pull/31092))
  202. - **nuxt:** Add route groups to page meta ([#33460](https://github.com/nuxt/nuxt/pull/33460))
  203. - **nuxt:** Enable payload extraction for ISR/SWR routes ([#33467](https://github.com/nuxt/nuxt/pull/33467))
  204. - **nuxt:** Allow updating props with `setPageLayout` ([#33805](https://github.com/nuxt/nuxt/pull/33805))
  205. - **nuxt:** Enable dragging and minimizing for error overlay ([#33695](https://github.com/nuxt/nuxt/pull/33695))
  206. - **nitro,nuxt:** Add support for payload extraction in dev ([#30784](https://github.com/nuxt/nuxt/pull/30784))
  207. - **rspack,webpack:** Add inline styles ([#33966](https://github.com/nuxt/nuxt/pull/33966))
  208. - **kit:** Add forward-compatible nitro types ([#34036](https://github.com/nuxt/nuxt/pull/34036))
  209. ### 🔥 Performance
  210. - **nuxt:** Do not init layer alias transform when using vite ([#33864](https://github.com/nuxt/nuxt/pull/33864))
  211. - **vite:** Add hook filters for ssr styles plugin ([#33865](https://github.com/nuxt/nuxt/pull/33865))
  212. - **vite:** Optimize `nuxt:ssr-styles` plugin ([#33862](https://github.com/nuxt/nuxt/pull/33862))
  213. - **nuxt:** Use filter for vfs plugin load ([eb3d2d4c6](https://github.com/nuxt/nuxt/commit/eb3d2d4c6))
  214. - **nuxt,vite:** Use filters to avoid running hooks unnecessarily ([6b7fc7477](https://github.com/nuxt/nuxt/commit/6b7fc7477))
  215. - **nuxt,vite:** Add more filters to internal plugins ([#33898](https://github.com/nuxt/nuxt/pull/33898))
  216. ### 🩹 Fixes
  217. - **kit:** Normalize local layer paths with trailing slashes ([#33858](https://github.com/nuxt/nuxt/pull/33858))
  218. - **nuxt:** Avoid overwriting multiple head input in island handler ([#33849](https://github.com/nuxt/nuxt/pull/33849))
  219. - **nuxt:** Update meta instead of calling `router.replace` in page hmr ([#33897](https://github.com/nuxt/nuxt/pull/33897))
  220. - **nuxt:** Don't call `page:loading:end` in cache if already called ([7789f73bd](https://github.com/nuxt/nuxt/commit/7789f73bd))
  221. - **vite:** Add error handling for parsing `NUXT_VITE_NODE_OPTIONS` ([41a564d23](https://github.com/nuxt/nuxt/commit/41a564d23))
  222. - **nuxt:** Do not skip middleware when `appMiddleware` references invalid key ([323f27bc8](https://github.com/nuxt/nuxt/commit/323f27bc8))
  223. - **nitro:** Clipboard copy in error overlay ([#33873](https://github.com/nuxt/nuxt/pull/33873))
  224. - **webpack,rspack:** Resolve deep imports in virtual files ([#33927](https://github.com/nuxt/nuxt/pull/33927))
  225. - **webpack:** Disable async chunks in dev mode ([0310c4070](https://github.com/nuxt/nuxt/commit/0310c4070))
  226. - **webpack:** Correctly evaluate sourcemap name ([653f364af](https://github.com/nuxt/nuxt/commit/653f364af))
  227. - **nuxt:** Handle node10 resolution for `nuxt/meta` ([01c2c9b13](https://github.com/nuxt/nuxt/commit/01c2c9b13))
  228. - **nuxt:** Do not early return if component priorities conflict ([#33955](https://github.com/nuxt/nuxt/pull/33955))
  229. - **nuxt:** Use `key` for tag deduplication in `<Head>` component ([#33958](https://github.com/nuxt/nuxt/pull/33958))
  230. - **schema,vite:** Resolve `build.transpile` when initialising vite ([#33868](https://github.com/nuxt/nuxt/pull/33868))
  231. - **nuxt,rspack,webpack:** Inject module identifiers for webpack builders ([#33962](https://github.com/nuxt/nuxt/pull/33962))
  232. - **nuxt:** Add key to head components for proper deduplication ([#33963](https://github.com/nuxt/nuxt/pull/33963))
  233. - **nitro:** Check prettyResponse.body type before error overlay ([#33977](https://github.com/nuxt/nuxt/pull/33977))
  234. - **nuxt:** Don't URI-encode static route paths ([#33990](https://github.com/nuxt/nuxt/pull/33990))
  235. - **nuxt:** Skip internal stub routes from prerender ([#34001](https://github.com/nuxt/nuxt/pull/34001))
  236. - **kit,schema:** Align module `onUpgrade` arguments with types ([#33988](https://github.com/nuxt/nuxt/pull/33988))
  237. - **nuxt:** Handle unsafe number parsing in useCookie decode ([#34007](https://github.com/nuxt/nuxt/pull/34007))
  238. - **nuxt:** Do not externalise `rou3` ([2df4e1ae3](https://github.com/nuxt/nuxt/commit/2df4e1ae3))
  239. - **nitro:** Add `noUncheckedIndexedAccess` to server tsconfig ([#33985](https://github.com/nuxt/nuxt/pull/33985))
  240. - **nuxt:** Add auto-import declarations for `shared/` context ([#33978](https://github.com/nuxt/nuxt/pull/33978))
  241. - **nuxt:** Update global reference to globalThis in `useRequestFetch` ([#33976](https://github.com/nuxt/nuxt/pull/33976))
  242. - **vite:** Configure hmr port for server build ([#33929](https://github.com/nuxt/nuxt/pull/33929))
  243. - **kit:** Add forward compatible nitro v3 types ([#34053](https://github.com/nuxt/nuxt/pull/34053))
  244. - **nitro,nuxt:** Do not import nitro deps in builders ([#34054](https://github.com/nuxt/nuxt/pull/34054))
  245. - **nitro:** Add `h3` types to auto-imports ([#34035](https://github.com/nuxt/nuxt/pull/34035))
  246. - **schema:** Add some more directories to ignore ([ebc2a66ab](https://github.com/nuxt/nuxt/commit/ebc2a66ab))
  247. - **nitro:** Also augment `nuxt/schema` ([a6a044d81](https://github.com/nuxt/nuxt/commit/a6a044d81))
  248. - **nuxt:** Make asyncData properties reactive in Options API ([#34119](https://github.com/nuxt/nuxt/pull/34119))
  249. - **nuxt:** Rerender `NuxtPage` when nested `NuxtLayout` has explicitly disabled layouts ([#34078](https://github.com/nuxt/nuxt/pull/34078))
  250. - **kit,nitro:** Enable `allowArbitraryExtensions` by default ([#34084](https://github.com/nuxt/nuxt/pull/34084))
  251. - **nuxt:** Decode client-side pathname for non-ASCII route aliases ([#34043](https://github.com/nuxt/nuxt/pull/34043))
  252. - **nuxt:** Force remount suspense when navigating after pending ([#33991](https://github.com/nuxt/nuxt/pull/33991))
  253. - **nuxt:** Add documentation link to server builder error message ([#34122](https://github.com/nuxt/nuxt/pull/34122))
  254. - **nuxt:** Validate placeholder/fallback tags + warn about placeholder/fallback props ([567a1c6fb](https://github.com/nuxt/nuxt/commit/567a1c6fb))
  255. - **nuxt:** Force flush `useAsyncData` debounced execute post watcher flush ([#34125](https://github.com/nuxt/nuxt/pull/34125))
  256. - **nitro:** Process isr/swr/cache keys ([d84278622](https://github.com/nuxt/nuxt/commit/d84278622))
  257. - **nuxt:** Add `typeFrom` support for `imports.d.ts` template exports ([#34135](https://github.com/nuxt/nuxt/pull/34135))
  258. - **nuxt:** Ensure we inline styles for `hydrate-never` components ([#34132](https://github.com/nuxt/nuxt/pull/34132))
  259. ### 💅 Refactors
  260. - **kit:** Add explicit return types for kit utilities ([6cd1289d1](https://github.com/nuxt/nuxt/commit/6cd1289d1))
  261. - **nitro,nuxt,schema,vite:** Provide explicit return types ([1d2c0c25f](https://github.com/nuxt/nuxt/commit/1d2c0c25f))
  262. - **kit,nuxt,schema:** Use named imports from `defu` + `consola` ([322dae3e0](https://github.com/nuxt/nuxt/commit/322dae3e0))
  263. - Add explicit `.ts` file extensions to relative imports ([80778c0cd](https://github.com/nuxt/nuxt/commit/80778c0cd))
  264. - **kit,nitro,nuxt,schema:** Reduce barrels + move `<>` to `as` ([f1713850c](https://github.com/nuxt/nuxt/commit/f1713850c))
  265. - **nitro,nuxt:** Use `~` prefix for internal ssrContext properties ([#33896](https://github.com/nuxt/nuxt/pull/33896))
  266. - **nitro:** Add explicit return types for runtime utils ([a4fda917e](https://github.com/nuxt/nuxt/commit/a4fda917e))
  267. - **nitro:** Move tree-shaken flags from replace plugin -> vfs ([#33907](https://github.com/nuxt/nuxt/pull/33907))
  268. - **nitro,nuxt,vite,webpack:** Use `status`/`statusText` + deprecate old props ([#33912](https://github.com/nuxt/nuxt/pull/33912))
  269. - **webpack:** Use RuntimeModule API for chunk preloads ([#33930](https://github.com/nuxt/nuxt/pull/33930))
  270. - **nuxt:** Use AST-aware function key injection ([#33446](https://github.com/nuxt/nuxt/pull/33446))
  271. - **nitro,nuxt,schema:** Use augments for nitro schema types ([#34039](https://github.com/nuxt/nuxt/pull/34039))
  272. - **nitro,rspack,vite,webpack:** Move cors handling -> nitro builder ([#34048](https://github.com/nuxt/nuxt/pull/34048))
  273. ### 📖 Documentation
  274. - Split and improve `Module Author Guides` ([#33803](https://github.com/nuxt/nuxt/pull/33803))
  275. - Update links to module guide ([86d67b24f](https://github.com/nuxt/nuxt/commit/86d67b24f))
  276. - Fix `useHead` return type ([#33857](https://github.com/nuxt/nuxt/pull/33857))
  277. - Add note that middleware doesn't run when rendering islands ([7df27c781](https://github.com/nuxt/nuxt/commit/7df27c781))
  278. - Add note on default branch for layers ([#33919](https://github.com/nuxt/nuxt/pull/33919))
  279. - Add mcp setup instructions for claude desktop ([#33914](https://github.com/nuxt/nuxt/pull/33914))
  280. - Mention deno as package manager ([#33875](https://github.com/nuxt/nuxt/pull/33875))
  281. - Clarify purpose of `statusText` ([#32834](https://github.com/nuxt/nuxt/pull/32834))
  282. - Update lychee config and remove medium article link ([c0b4e0f28](https://github.com/nuxt/nuxt/commit/c0b4e0f28))
  283. - Update module count and fix typo ([#33950](https://github.com/nuxt/nuxt/pull/33950))
  284. - Add DeepWiki badge ([#33508](https://github.com/nuxt/nuxt/pull/33508))
  285. - Give example of usage of `defineWrappedResponseHandler` ([#33952](https://github.com/nuxt/nuxt/pull/33952))
  286. - Provide cleaner example code for vitest projects ([#33960](https://github.com/nuxt/nuxt/pull/33960))
  287. - Improve `addImports` example ([#34011](https://github.com/nuxt/nuxt/pull/34011))
  288. - Update yarn create command ([4a3c08874](https://github.com/nuxt/nuxt/commit/4a3c08874))
  289. - Update roadmap with a11y ([d3453d6a5](https://github.com/nuxt/nuxt/commit/d3453d6a5))
  290. - Add a11y release ([#34041](https://github.com/nuxt/nuxt/pull/34041))
  291. - Remove Nuxtr from recommendations ([#34045](https://github.com/nuxt/nuxt/pull/34045))
  292. - Typo ([#34050](https://github.com/nuxt/nuxt/pull/34050))
  293. - Remove duplicate feature ([#34058](https://github.com/nuxt/nuxt/pull/34058))
  294. - Fix typo ([#34057](https://github.com/nuxt/nuxt/pull/34057))
  295. - Provide deno package manager examples ([#34070](https://github.com/nuxt/nuxt/pull/34070))
  296. - Update JSDoc for `config.experimental` properties ([#34069](https://github.com/nuxt/nuxt/pull/34069))
  297. - Fix transition types ([#34082](https://github.com/nuxt/nuxt/pull/34082))
  298. - Make custom wrapper recipe link more prominent ([#34085](https://github.com/nuxt/nuxt/pull/34085))
  299. - Remove `null` from `getCachedData` trigger ([f7cf3747e](https://github.com/nuxt/nuxt/commit/f7cf3747e))
  300. - **nuxt:** Mention custom serializers in `useState` docs ([#34105](https://github.com/nuxt/nuxt/pull/34105))
  301. - Add info about runtime directories + type checking ([#34097](https://github.com/nuxt/nuxt/pull/34097))
  302. - Clarify module setups in `.nuxtrc` example ([#34107](https://github.com/nuxt/nuxt/pull/34107))
  303. - Remove duplicate entries in table ([#34094](https://github.com/nuxt/nuxt/pull/34094))
  304. - Clarify catch all notation for `addServerHandler` ([#34060](https://github.com/nuxt/nuxt/pull/34060))
  305. - Add layers directory documentation ([#33967](https://github.com/nuxt/nuxt/pull/33967))
  306. - Clarify type-checking context limitations for server routes ([#33964](https://github.com/nuxt/nuxt/pull/33964))
  307. - Add a tip for `appLayout` ([beda47955](https://github.com/nuxt/nuxt/commit/beda47955))
  308. - Add docs for disabling modules by passing `false` to its options ([cdad9310c](https://github.com/nuxt/nuxt/commit/cdad9310c))
  309. - Add info about caching payloads with isr/swr ([6e10ff04f](https://github.com/nuxt/nuxt/commit/6e10ff04f))
  310. - Add example for async addVitePlugin ([1098254f7](https://github.com/nuxt/nuxt/commit/1098254f7))
  311. - Add example of passing props to layouts ([1f9e6b82c](https://github.com/nuxt/nuxt/commit/1f9e6b82c))
  312. - Mark vite plugin as not typed ([5e09fddfb](https://github.com/nuxt/nuxt/commit/5e09fddfb))
  313. - Add warning about `source` from `<NuxtIsland>` ([1586bbb6e](https://github.com/nuxt/nuxt/commit/1586bbb6e))
  314. ### 📦 Build
  315. - Remove babel debugging plugin from jiti stub options ([bce8248b4](https://github.com/nuxt/nuxt/commit/bce8248b4))
  316. - **vite:** Add build entries for `vite-node` entrypoints ([#33893](https://github.com/nuxt/nuxt/pull/33893))
  317. - **nuxt:** Tidy up subpath export types ([a63d4a014](https://github.com/nuxt/nuxt/commit/a63d4a014))
  318. - Use `obuild` except for nuxt + nitro-server packages ([#34049](https://github.com/nuxt/nuxt/pull/34049))
  319. - **schema:** Fix `/builder-env` subpath types ([7f5034288](https://github.com/nuxt/nuxt/commit/7f5034288))
  320. ### 🏡 Chore
  321. - Add return types to debug plugins ([8f7554287](https://github.com/nuxt/nuxt/commit/8f7554287))
  322. - Add `build:stub` command for those that need it ([3e3d3d37a](https://github.com/nuxt/nuxt/commit/3e3d3d37a))
  323. - Revert change to how type augments are inserted ([c1b3590ff](https://github.com/nuxt/nuxt/commit/c1b3590ff))
  324. - Update eslint config rule ([2717d8fd3](https://github.com/nuxt/nuxt/commit/2717d8fd3))
  325. - Do not require aligned columns in tables ([8d3c5b371](https://github.com/nuxt/nuxt/commit/8d3c5b371))
  326. - Lint ([f89d447a1](https://github.com/nuxt/nuxt/commit/f89d447a1))
  327. - Explicitly import `node:process` ([#33982](https://github.com/nuxt/nuxt/pull/33982))
  328. - Add root scripts to lint context ([e22089f82](https://github.com/nuxt/nuxt/commit/e22089f82))
  329. - Tidy up configs ([8b42d4c2b](https://github.com/nuxt/nuxt/commit/8b42d4c2b))
  330. - Lint docs with eslint ([51da8e681](https://github.com/nuxt/nuxt/commit/51da8e681))
  331. - Lint ([1cfd3c460](https://github.com/nuxt/nuxt/commit/1cfd3c460))
  332. ### ✅ Tests
  333. - Update tests for new version of nuxt/test-utils ([#33842](https://github.com/nuxt/nuxt/pull/33842))
  334. - Avoid unnecessary tick ([988f6657a](https://github.com/nuxt/nuxt/commit/988f6657a))
  335. - Add regression test for asyncData HMR ([#32182](https://github.com/nuxt/nuxt/pull/32182))
  336. - Add test for page hmr resetting state ([#32418](https://github.com/nuxt/nuxt/pull/32418))
  337. - Add reproduction for vite pre-transform error ([#31574](https://github.com/nuxt/nuxt/pull/31574))
  338. - Add regression test for #32154 ([#32154](https://github.com/nuxt/nuxt/issues/32154))
  339. - Use `vi.hoisted` for klona mock ([#34113](https://github.com/nuxt/nuxt/pull/34113))
  340. ### 🤖 CI
  341. - Directly call webhook url ([ce15997ce](https://github.com/nuxt/nuxt/commit/ce15997ce))
  342. - Use new reusable triage workflows ([#34072](https://github.com/nuxt/nuxt/pull/34072))
  343. - Use new shared dependency review workflow ([8c01e1ce9](https://github.com/nuxt/nuxt/commit/8c01e1ce9))
  344. ### ❤️ Contributors
  345. - Florian Heuberger (@Flo0806)
  346. - Octavio Araiza (@8ctavio)
  347. - Daniel Roe (@danielroe)
  348. - Robin (@OrbisK)
  349. - shaheer-arbisoft (@shaheer-arbisoft)
  350. - Matej Černý (@cernymatej)
  351. - Francesco Mussoni (@solidusite)
  352. - Danila Poyarkov (@dannote)
  353. - Victor Saa (@vis97c)
  354. - Teages (@Teages)
  355. - Eli Sterken (@eli-sterk)
  356. - Ryota Watanabe (@wattanx)
  357. - Jakub Andrzejewski (@Baroshem)
  358. - edison (@edison1105)
  359. - Max (@onmax)
  360. - Aidan Hibbard (@aidanhibbard)
  361. - Rahul Dogra (@rahuld109)
  362. - Julien Huang (@huang-julien)
  363. - abeer0 (@iiio2)
  364. - James Robert Lund III (@lundjrl)
  365. - Philipp Wagner (@imphil)
  366. - Maxime Pauvert (@maximepvrt)
  367. - Wind (@productdevbook)
  368. - Agatem (@agatemosu)
  369. - Pavel (@eL1fe)
  370. - Alois Sečkár (@AloisSeckar)
  371. - Lucie (@lihbr)
  372. - Sergiu Ravliuc (@YoSoySergio)
  373. - Saeid Zareie (@Saeid-Za)
  374. - Alireza Jahandideh (@Youhan)
  375. - kikuchan (@kikuchan)
  376. - Ragura (@Ragura)
  377. - Josh Deltener (@hecktarzuli)
  378. - Teena (@franklin-tina)
  379. - Frederik Bußmann (@freb97)
  380. - Benjamin Oddou (@BenjaminOddou)
  381. - Mukund Shah (@mukundshah)
  382. - Jessé Correia Lins (@linspw)
  383. - Jannik Sohn (@janniksohn)
  384. - Dawit (@oneminch)
  385. - Ali Sokkar (@NyllRE)
  386. - Horu (@HigherOrderLogic)
  387. - Anthony Fu (@antfu)
  388. - Harlan Wilton (@harlan-zw)
  389. - Alexander Lichter (@TheAlexLichter)
  390. - Ryan Wilson (@rywils)
  391. - Hugo (@HugoRCD)
  392. - yamachi4416 (@yamachi4416)

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