nuxt

nuxt breaking-changes badge

nuxt (latest known version: 4.5.0) has 233 known breaking changes on record, each backed by a source URL.

Actively maintainedLatest known version: 4.5.0npm ↗

Security advisories

GHSA-534h-c3cw-v3h9MODERATE>=4.0.0 <4.4.7 || >=3.18.0 <3.21.7

Nuxt dev server vite-node IPC socket is world-connectable on Linux

source ↗

GHSA-934w-87qh-qr26MODERATE>=4.0.0 <4.4.7 || <3.21.7

Nuxt: Reflected XSS in `<NuxtLink>` via unsanitised `javascript:` or `data:` URL

source ↗

GHSA-c9cv-mq2m-ppp3MODERATE>=4.0.0 <4.4.7 || <3.21.7

Nuxt: URL-handling weaknesses in `navigateTo` and `reloadNuxtApp`: SSR open redirect, client-side script execution via the `open` option, and protocol-relative bypass in `reloadNuxtApp`

source ↗

GHSA-fx6j-w5w5-h468MODERATE>=3.4.3 <3.21.6 || >=4.0.0-alpha.1 <4.4.6

Nuxt: Reflected XSS in `navigateTo()` external redirect

source ↗

GHSA-g8wj-3cr3-6w7vLOW>=3.1.0 <3.21.6 || >=4.0.0-alpha.1 <4.4.6 || >=3.20.0 <3.21.6 || >=4.2.0 <4.4.6

Nuxt: `__nuxt_island` endpoint does not bind responses to request props, enabling shared-cache poisoning

source ↗

GHSA-gc34-5v43-h7v8CRITICAL>=3.4.0 <3.4.3

nuxt Code Injection vulnerability

source ↗

GHSA-hg3f-28rg-4jxjMODERATE>=3.11.0 <3.21.6 || >=3.20.0 <3.21.6 || >=4.2.0 <4.4.6 || >=4.0.0-alpha.1 <4.4.6

Nuxt's route middleware is not enforced when rendering `.server.vue` pages via `/__nuxt_island/page_*`

source ↗

GHSA-jvhm-gjrh-3h93HIGH>=3.0.0 <3.16.0

Nuxt allows DOS via cache poisoning with payload rendering response

source ↗

GHSA-m3q2-p4fw-w38mLOW>=4.0.0 <4.4.7 || <3.21.7

Cross-site scripting via <NoScript> slot content in Nuxt's head components

source ↗

GHSA-mm7m-92g8-7m47HIGH>=4.0.0 <4.4.7 || >=3.11.0 <3.21.7

Nuxt: Route-rule middleware bypass via case-sensitivity mismatch between vue-router and the routeRules matcher

source ↗

GHSA-p6jq-8vc4-79f6LOW>=3.6.0 <3.19.0 || >=4.0.0 <4.1.0

Nuxt has Client-Side Path Traversal in Nuxt Island Payload Revival

source ↗

GHSA-rq7w-g337-39qqLOW>=4.0.0-alpha.1 <4.4.7

Nuxt: Dev server discloses project absolute path and persistent workspace UUID via `/.well-known/appspecific/com.chrome.devtools.json`

source ↗

GHSA-v784-fjjh-f8r4CRITICAL>=3.4.0 <3.12.4

Nuxt vulnerable to remote code execution via the browser when running the test locally

source ↗

GHSA-vf6r-87q4-2vjfMODERATE<3.12.4

nuxt vulnerable to Cross-site Scripting in navigateTo if used after SSR

source ↗

Recent changes

v4.5.0Security

Upgraded to Vite 8 major version which should be reviewed for security improvements

source ↗

v4.5.0Notable

Auto-imported $fetch in user code, fixing edge cases with top-level $fetch.create under Rolldown's output format

source ↗

v4.5.0Notable

Shared file watcher optimization allows Nuxt to piggy-back on Vite's chokidar watcher via experimental.watcher: 'builder'

source ↗

v4.5.0Notable

Layer-aware dev server now reloads on changes to local layer nuxt.config files

source ↗

v4.5.0Notable

Added Golar support for type-checking as alternative to vue-tsc, auto-detected or forcible via --checker flag

source ↗

v4.5.0Notable

Added type-check onboarding to nuxt typecheck command with automatic vue-tsc and typescript installation

source ↗

v4.5.0Notable

Added non-interactive nuxt init support for scripting and CI with automatic template package manager detection

source ↗

v4.5.0Notable

Added nuxt module remove command to uninstall a module and clean up its config

source ↗

v4.5.0Notable

Introduced named layout slots runtime feature (experimental typescriptPlugin with dxup) allowing pages to inject content into layout slots

source ↗

v4.5.0Notable

Migrated to unctx v3 to resolve async context issues and improve composable-context reliability

source ↗

v4.5.0Notable

Migrated to unhead v3 with smaller size, synchronous engine, and better type-safety for useHead

source ↗

v4.5.0Notable

Added diagnostics-channel tracing support for server-side SSR subsystems (nuxt.render, nuxt.island, nuxt.data, nuxt.plugin channels)

source ↗

v4.5.0Notable

Made resolved Nuxt environment name available at runtime as import.meta.envName for Vite and webpack/Rspack builds

source ↗

v4.5.0Notable

Added experimental prefetchPreloadTags to forward destination's preload hints during prefetch, downgraded to rel="prefetch"

source ↗

v4.5.0Notable

Exposed prefetch control props in NuxtLink custom slot (prefetch, prefetched, shouldPrefetch)

source ↗

v4.5.0Notable

Added enabled option to useFetch and useAsyncData to gate data fetching with reactive control

source ↗

v4.5.0Notable

Introduced named views support via filename convention (name@view.vue) for pages rendering to multiple NuxtPage outlets

source ↗

v4.5.0Notable

Added useLayout composable for reading the resolved layout for the current route

source ↗

v4.5.0Notable

Implemented stable error code system for build and runtime warnings/errors with codes like NUXT_E1001 and linked documentation

source ↗

v4.5.0Notable

Added experimental SSR streaming mode to dramatically improve Time to First Byte by flushing HTML shell immediately and streaming body as Vue renders

source ↗

v4.5.0Notable

Upgraded to Rspack 2 and rebuilt the builder on top of @rsbuild/core, with dev server now running in middleware mode via Rsbuild

source ↗

v4.5.0Notable

Upgraded to Vite 8 with faster cold starts and latest Rolldown-powered internals

source ↗

v4.5.0Breaking

Rspack builder internals now use Rsbuild-based foundation, requiring review of custom Rspack config

Review custom Rspack configuration against Rsbuild compatibility

source ↗

v4.5.0Breaking

unhead v3 introduces type-narrowing for useHead which can be a breaking type change from looser v2 types; promise input is no longer supported

Update code to handle stricter useHead typing from unhead v3; check upgrade guide for details

source ↗

v4.4.8Notable

Revert unhead dependency back to v2

source ↗

v4.4.8Notable

Respect `type` option in `findPath` in kit

source ↗

v4.4.8Notable

Shorter socket name for macOs with tmp fallback in Vite

source ↗

v4.4.7Security

Bind vite-node IPC to a permissioned filesystem socket

source ↗

v4.4.7Security

Reject cross-origin paths in `reloadNuxtApp`

source ↗

v4.4.7Security

Block path-normalization open redirect in `navigateTo`

source ↗

Check what changed for nuxt since your installed version, live.

Open the playground →