Last 7 days
0
Features: 0
Changes: 0
Fixes: 0
Deprecations: 0
Full-stack Vue framework for server-rendered and hybrid web applications.
Latest Nuxt changelog updates, official release notes, breaking changes, security patches, pricing changes, and developer reactions in one product feed.
Follow this Nuxt release-notes page to spot useful features, risky migrations, noisy announcements, and source links before they hit your backlog.
Changes.Watch links back to official changelog and release-note sources so summaries stay easy to verify.
Use channels to follow groups of tools around a stack, workflow, or topic.
Rolling windows show how many product updates landed in the last 7, 30, 90, and 365 days, grouped by existing changelog semantics.
0
4
10
35
Fix island payload serialization for underscore keys and deduplicate island renders during prerender
Improved build and runtime performance with lazy imports, reused scans, and skipping unchanged files across Nuxt, Kit, and Vite.
Security release addressing server‑side RCE, unauthorized component instantiation, route rule authorization bypass, DoS, and dev server path disclosure, plus a regression fix from the prior advisory.
Critical security patches fixing server‑side RCE, unauthorized component instantiation, route rule bypass, DoS attacks, cross‑user payload leakage and dev server path disclosure; also upgrades @nuxt/devtools to block a separate developme...
Upgrade to Vite 8, Rspack 2 (via Rsbuild) and unhead v3, delivering faster builds and enabling experimental SSR streaming.
Fixed various Vite and Nitro bugs such as SPA entry fallback, CSS extraction, Windows pipe path handling, and atomic prerender cache writes.
Fixed dev server crash on macOS by shortening Vite socket name with a temporary fallback.
Fixed dev server crash on macOS by shortening Vite socket name and adding a tmp fallback.
Security hotfix addressing multiple vulnerabilities, including protocol validation, open redirect prevention, and sandboxed devtools endpoints
Security hotfix release addressing multiple vulnerabilities (e.g., protocol validation, path traversal, open redirect protections) across Nuxt, Nitro, and Vite.
Fix Vite SSR module cache invalidation and spa entry handling for node fallback
Fix multiple bugs across Nuxt, Nitro, and Vite (builder deps, payload cache handling, app manifest errors, SSR IDs, and more).
Improve performance by adding cache layer roots and short‑circuiting `isIgnored` checks; optimize Vite CSS handling and Nitro payload routing
Performance and rendering tweaks: cache layer roots, short‑circuit isIgnored checks, break recursive rendering deadlocks, defer head DOM updates, and inline CSS optimizations for server components.
Added performance enhancements such as direct Nuxt package import, VFS‑based manifest handling, parallel module loading with cached JITI instances, and hash‑based dev payload caching.
Performance and build enhancements: batch‑resolve TypeScript hoist paths, VFS manifest handling, hash‑based dev payload cache, and improved Vite/webpack style emission.
Added factory functions `createUseFetch` and `createUseAsyncData` for custom, fully typed instances with default options.
Fix a wide range of bugs across Nuxt, Nitro, Vite, and Webpack, including server builder reference format, error handling, path encoding, component import conflicts, and CSS flickering in dev mode.
Fixed numerous bugs across Nuxt, Nitro, Vite, and Webpack (e.g., server builder reference, error handling, routing, CSS flicker, query decoding)
Added declarative layout assignment via `appLayout` in route rules and support for layout props with `setPageLayout`.
Added route‑rule layout support (appLayout) and layout‑props via setPageLayout, plus new server alias and draggable error overlay
Multiple bug fixes across Nitro, Nuxt, and kit (error handling, component references, async data deduplication, HTML escaping, and TypeScript path alias support)
Fixed multiple nitro and Nuxt bugs such as error handler display in tests, route sync before page finish hook, async data deduplication, and HTML escaping in development error stacks
Fixed multiple bugs in kit, nuxt, nitro, schema, and vite (e.g., import preset deprecation, prefetch warning, error overlay handling, vite proxy support).
Fixed Vite and Nitro bugs including server‑side optimizeDeps handling, Vite proxy support, and Nitro error overlay behavior
Adds numerous new features such as component declarationPath, resolveModule extensions, abortController support for useAsyncData, experimental TypeScript plugin, setGlobalHead utility, Vite environment API, and NuxtTime time props.
Added AbortController support for useAsyncData and refresh, introduced optional Vite Environment API opt‑in and extracted Nitro server into its own @nuxt/nitro package, paving the way for future Nuxt 5 breaking changes.
Performance and build optimizations: Vite now uses Rollup's replace plugin, deduplicates inlined server style chunks, and improves lazy component type compatibility.
Enhanced Vite performance by using rolldown's replace plugin and deduplicating inlined server style chunks.
Improve performance by avoiding template normalization in loops, optimizing component directory handling, and reducing unnecessary iterations.
Performance tweaks: skip template normalization in loops, remove watcher in lazy hydration, more efficient component/directory normalization, and reduced unnecessary iterations in core and kit.
Fixed numerous Nuxt and Vite issues: corrected auto‑import component paths, switched to globalThis, improved AST‑aware tree shaking, ignored internal component mappings, adjusted Vite deps.inline, and added clearer warnings for routes an...
Fixed numerous Nuxt and Vite issues such as incorrect auto‑import component paths, AST‑aware tree shaking, and improved route middleware warnings
Added import‑map based chunk stability and experimental Rolldown bundler support for faster builds.
Add new kit features like an ignore option for resolveFiles, onInstall/onUpgrade hooks, experimental rolldown support, module dependency declarations, and a getLayerDirectories utility
Fix several Nuxt runtime errors (undefined variable, lazy hydration warning, navigation call handling) and improve TypeScript type checking with tsconfig references.
Performance kit: resolveFiles now uses absolute paths from tinyglobby for faster resolution.
Fixed multiple Nuxt core issues: typed slots for <ClientOnly>/<DevOnly>, trailing‑slash alias handling, global defineAppConfig typing, module type inclusion, remote islands base URL, Vite node server request transformation, plugin execut...
Added lazy hydration macros, Chrome DevTools workspace integration, and an accessibility route announcer; introduced typed slots for <ClientOnly>/<DevOnly> and auto‑import for onWatcherCleanup
Added nuxt.schema files to tsconfig context and exposed shared aliases, improving TypeScript support.
Adds a new `app/` directory layout and separates TypeScript projects for app, server, and shared code, improving organization and IDE support (breaking change).
Fixed multiple Nuxt core and Vite issues such as extra page meta guard, loadBuilder error exposure, string input handling, and scroll‑to‑anchor behavior
Decrease unnecessary condition checks during prerendering for performance gains
Replace remaining globby usage to improve performance
Improve performance by using Sets, shallowRef, and Intl.Collator for faster processing
Pre‑calculate extension glob and improve islands client component chunking for faster builds.
Tree‑shake router’s handleHotUpdate in production, reducing bundle size and improving performance
Fixed multiple Nuxt issues including async data reinitialization, view‑transition handling, trailing‑slash redirects, and fetch key execution.
- Overhauled async data layer: useAsyncData and useFetch now share refs, support reactive keys, and introduce experimental.granularCachedData flag (potential breaking change).
Improved tree‑shaking for useRequestEvent on the client and added a dedupe flag to clean lockfiles.
Improved Nuxt performance by leveraging browser cache for payloads, optimizing router catch‑all patterns, and enhancing Vite and HMR handling.
Add create-nuxt, a tiny, single‑file CLI for instantly scaffolding Nuxt projects.
Improved error logging for acorn parsing and cleared island UID before payload saving.
Implemented configurable CORS origin restrictions for the dev server (Vite/Webpack/Rspack), a breaking security fix.
Startup time reduced (~30% faster Vite build) via performance optimizations and code deduplication
Skip experimental async context transform in client builds and drop unused dependencies for improved performance
Upgrade to Vite 6 with new Environment API and non‑breaking migration considerations.
Added rspack support to webpackbar and enhanced Nuxt template handling (async layouts, recompile on change, multi‑file metadata scanning)
Fixed regressions from v3.14: nitropack preset directory, module path handling with mlly, and removed null‑byte prefixes for virtual files
Improves start-up speed by using jiti v2 with native ESM imports and adds a new shared/ folder for shared code/types with auto‑imports.
Fixed SSR logging, server error rendering, and component path resolution to improve stability
Added stable server/client IDs via built‑in Vue `useId` composable
Added route groups (parentheses/brackets directories) and custom prefetch triggers for NuxtLink, plus server component islands can now manipulate head metadata.
Performance tweaks: start Vite warmups post‑Nitro build, reduce extra resolve calls, enforce explicit exports for kit/nuxt/schema/vite/webpack
Improved performance and compatibility: switched to native fs utils for Nuxt/Vite, treeshaken prefetchComponents, and refined handling of custom srcDir, subpaths, and route navigation.
Downgraded webpack's mkdirp dependency to an earlier version to resolve compatibility issues.
Migrated webpack to an in‑memory filesystem (memfs) and re‑added an MD4 monkey‑patch for broader compatibility.
Performance improvements across the kit, webpack, Vite, and Nuxt core (layer deduplication, fewer asset map iterations, faster config resolution).
Update dependencies: bump serve static types to v1.15.7, switch to maintained html minifier (terser), and refresh yarn lockfile.
Fixed a typo in the Nuxt script stub auto‑import, correcting the @nuxt/scripts registry list.
Added Nuxt 4 compatibility testing flag, experimental multi‑app support, auto‑registration of /layers, and new <NuxtRouteAnnouncer> accessibility component.
Performance tweaks: reduced island payload, router resolutions, and avoided tree‑shaking of useServerHead in dev.
Patch release v3.11.1 fixes regressions introduced in v3.11.0, including console.log handling, asyncContext errors, BroadcastChannel creation, and page route loss during prerender.
Added server‑side logs streaming to the browser console, a dev:ssr logs hook, a new clear utility for useAsyncData/useFetch, and a usePreviewMode composable.
Fix multiple bugs: respect dedupe option in useFetch, bypass browser cache for app build ID, avoid inline CSS in dev, and correct type definitions.
Fixed multiple Nuxt and Vite bugs including refreshCookie export, prefetching URLs with query strings, route object key handling, style chunk filename stripping, and layout/page checks.
Performance and bug fixes: clear route meta cache on page changes, fix serialization syntax error, correct cookie change format, limit requestAnimationFrame to client, and adjust refresh function return types.
Experimental sharedAsyncData/prerender deduplication (sharedPrerenderData option) reduces repeated data fetching during static generation.
Hotfix release fixing CSS regression in development mode
Improved performance by iterating instead of using Object.fromEntries.
Migrated to the new hookable package and performed refactoring
Improved performance by consolidating iterations in request header handling, route normalization, and rendering, plus refactoring internal utilities.
Upgrade to Vite 5 and Rollup 4, requiring plugin authors to verify compatibility.
Patched numerous bugs across Vite, Nuxt core, and schema (e.g., asyncData error handling, plugin template typings, useFetch behavior, islands slots, rollup replace plugin).
Fixed numerous bugs across Nuxt core, Vite, Webpack, and schema handling (e.g., prerender hints, payload handling, cookie expiration, import resolution).
Fixed type definitions: prevented Vue template type overwrites and stopped pinning webpack types to exact versions.
Breaking changes: explicit type imports are now required via verbatimModuleSyntax and layout scanning now includes subfolders, so code may need updates.
Fixed several Nuxt bugs such as page re‑export escaping, islandsTransform slot regex, Vite preload helper handling, and layer middleware loading order
Fixed regression by ensuring plugins retain original order and adding support for importing server components from components
Fixed multiple router and component bugs (scroll‑to‑top on dynamic routes, optional params handling, layer ordering, SPA loading templates).
- Optimized performance by preventing duplicate head DOM rendering and decreasing the default bundle size.
Introduced a decoupled Nuxt CLI (nuxi) built with unjs/citty, enabling faster iteration and new command capabilities.
Hotfix v3.6.5 resolves the regression in nuxt/content introduced in v3.6.4.
Fixed numerous bugs such as moduleResolution case handling, payload extraction, trailing‑slash redirects, auto‑import race condition, hydration count handling, async layout hydration, and added CLI inspect support
Improved performance by prepopulating island payloads and skipping view transitions when there is no route change.
Downgrade webpack dev middleware to resolve a peer dependency issue
Added dev HMR for server components, custom route name meta support, and improvements to island transform and prerender behavior.
Fix multiple bugs in Nuxt core and Vite (esbuild usage, header proxying, SPA loading template, CSS asset handling, middleware removal, etc.)
Added built‑in SPA loading indicator and automatic static provider presets for streamlined deployments
Add Vue 2.7 type support and allow PostCSS options to be provided as a function, plus CSP nonce generation for SSR scripts/links.
Improves performance by avoiding nested path watching and skipping key generation for locally scoped functions.
Fix various type and runtime bugs across Nuxt core (e.g., useLazyFetch types, case‑sensitive component scanning, Windows path normalization).
Fixed numerous bugs such as webpack analyze report path, island rendering without a route, and plugin declaration handling.
Added many new features: Vue 3.3 support, rich JSON payloads by default, interactive server‑component slots, fully typed routing/pages, bundler‑style module resolution, and per‑environment config overrides.
Patch release v3.4.3 introduces numerous bug fixes across core Nuxt behavior, such as safe timing calls, forced server component re‑render, improved typings, cookie handling, SSR error flow, and redirect handling.
Upgrade to Vite 4.3 for improved build performance
Fixed several critical bugs from 3.4.0, including SSR context handling, payload reactivity, missing imports, and redirect logic.
Added experimental View Transitions API support and object‑syntax Nuxt plugins for better control and future build optimizations.
Fixed numerous bugs in schema handling, Nuxt options, Vite config extensions, and webpack transpilation
Fixed numerous bugs across core, kit, webpack, and CLI, addressing performance markers, Node 14 behavior, DOM update handling, and module handling.
Add return type for error() and bring Less types into the namespace.
Fixed Windows-specific nuxi crash during dev server restart
Patched the built‑in crypto node to support Nuxt 2 on Node versions > 16, easing post‑EOL migration.
Fixed bugs in CLI, Vite, Nuxt, Webpack, and routing (e.g., restart on missing distDir, path normalization, preserving imports)
Introduced experimental `app:chunkError` hook with a hard-reload strategy for chunk errors (feature)
Downgrade @types packages to maintain compatibility with webpack 5
Added opt‑in Nuxt DevTools with UI toggle and documentation link
Fixed several runtime and build bugs (fallback runtime config, safe onNuxtReady, Vue router deduplication, test utils cleanup, etc.)
Node 14+ is now required; core-js defaults to v3 and PostCSS upgrades to v8, introducing breaking changes and security‑focused dependency updates.
- Fixed rendering of components injected by Vue or Nuxt plugins and stopped placeholder rendering of unknown components.
Added experimental component islands and server‑only components along with new composables (onNuxtReady, useNuxtData, useSeoMeta) and an experimental config schema
Core updates: removed auto imports, initialized runtimeConfig.public with an empty object, and added union‑type support for useAsyncData (potential breaking change).
Fix Vue app issue where valid route paths were incorrectly normalized (issue #9460).
Security advisory: upgrade to nuxt@^2.15.7 to address vulnerabilities in nuxt@2.15.5 and nuxt@2.15.6.
Pin @types/webpack-dev-middleware to version 4.1.2 to fix type issues (resolves #9270, #9268).
Fix Babel loose option handling for class properties and private methods.
- Fixed several runtime bugs including chunk reload errors, missing $root, server component matching, redirect serialization, payload fetch retries, and HMR caching in Safari
Fixed bugs such as exporting a proper NuxtConfig interface and updating @babel/preset‑env to 2.13.x.
Fixed bugs in the Babel preset app.
Fix deep merge of server runtime config and adjust path resolution for pages directory
Upgrade to Node.js ≥12, switch to jiti as the require engine with built‑in TypeScript support, enable plug‑and‑play out‑of‑the‑box and optional PostCSS 8 (introduces breaking behavior changes).
Fixed URL handling issues affecting tickets 8497, 8493, 8458, and 8457
Added a URL polyfill to fix IE11's "URL is not a constructor" error.
Fix route normalization and correctly decode resolved query parameters.
Hot fix ensuring only non‑dynamic path parameters are encoded.
- Fixed numerous bugs including nested node_modules transpilation, route encoding, static asset handling, CSP 304 header, and fetch state warnings.
Fixed transpilation of optional chaining/nullish coalescing for the server CLI and added rebuild on process.env changes in nuxt.config
Fixed Babel preset to accept corejs.version as a string
Fixed multiple bugs: error page layout, promise chaining, production chunk naming, environment variable interpolation, recursion avoidance, and build.indicator normalization.
Fixed multiple bugs: Vue renderer issues, HMR with Mongoose, Chrome debugger variable shadowing, SPA modern client script handling, and Nuxt generate error handling.
Fixed issue in Vue renderer related to nomodule handling for legacy chunks.
Fixed several bugs: webpack chunk naming, missing nomodule in legacy builds, router redirect errors, Vue Router scrollToTop regression, and router module reallocation.
Fixed routing bugs: optional dynamic children routes, removed optional params on index routes, and added server‑side router error handling.
Implemented auto‑detect for Core‑JS version, async `extendRoutes` support, a new SPA renderer hook, and WebStorm 2020.2 integration with `web-types.json` for better IDE insight.
- Fixed multiple bugs in Vue app, layout handling, SPA fallback payload, webpack asset loading, and module naming
Fixed multiple webpack and routing bugs: passed outputFileSystem to webpackDevMiddleware, normalized chunk names, avoided duplicate module breakage, and corrected layout on error redirects
Fix resolveRouteComponents import issue in Vue app
Added static and full‑static generation targets, built‑in .env/runtimeConfig support, auto‑component discovery, and .nuxtrc configuration.
Fixed HMR handling for sub‑app server middleware when no path is specified
Fixed multiple $fetch calls and updated fetch client mixin to use globals.nuxt.
Added SSR enhancements (crossorigin attribute, preload support), new fetch syntax, programmatic usage docs, HMR for server middleware, and options to disable loading screens.
Upgraded Vue Router to 3.1.x, added optional client/server code stripping, introduced ignoreOptions for node‑ignore, and refined CSP source handling.
Fixed multiple webpack and build issues: enabled devtool in dev mode, normalized devtool for terser compatibility, corrected a typo in unsafeInlineCompatibility, and fixed the "cannot read property 'app' of undefined" error on Nuxt build.
Fixed several Vue and webpack issues (Vue app bug, removed consola, router.trailingSlash handling, chunkhash/contenthash extraction, trailing slash removal).
Added experimental feature‑toggling for slim builds and new CLI/config options (bannerColor, followSymlinks, extendPlugins, builder hooks) plus configurable middleware.
Fixed multiple bugs including file watching for generated files, builder override handling, https:null handling, missing Vue client‑only dependency, listener overwrite logic, default CSS enforcement, and added TypeScript backward compati...
Fixed bugs in the Vue app, loading screen, and index page content type
Deprecate `scrollBehavior` and `devModules` options, encouraging use of `app/router.scrollBehavior.js` and `buildModules` respectively.
Fixed multiple runtime errors: undefined property access, header‑sent errors, and consola console.log overrides.
Added a dedicated SSR logs group and render.ssrLog option to control and safely format server‑side logs.
Builder now only emits warnings for mismatched dependencies
SSR logs are now reported to the browser console and Nuxt auto‑reloads when a store/ directory is added or changed.
Fixed CLI watch/reload of nuxt.config and serialization of inline functions
Fixed several CLI issues: applied nuxt.config.js changes, handled tsconfig without TypeScript, and displayed memory usage after build.
Adds support for specifying core-js version, new CLI generate/build options, quiet mode for generate, and CSP meta‑tags in the Vue renderer.
Reverted to core-js@2 and removed consola.debug calls in hooks to improve stability.
Native TypeScript support added via @nuxt/typescript, removing the need for nuxt-ts (breaking change and deprecation).
Added support for bundling non‑JS/JSON assets from node_modules in the builder and webpack pipelines.
Update terser-webpack-plugin to ^1.2.2 and webpack to ^4.29.2.
Fix async component handling when using Nuxt TypeScript
Added official TypeScript support via a new nuxt‑ts distribution (experimental, may introduce breaking changes).
Fix for vue router error "Expected \"0\" to be defined".
Fixed CLI nuxt start to always run in production mode and corrected several router behaviors (Unicode page names, triggerScroll after layout change).
Use exact version specifications for Nuxt internal packages
Split Nuxt into a mono‑repo with separate @nuxt/* packages for independent versioning and modular replacement
- Backported the "no generate" option to Nuxt's build process in SPA mode.
Show a warning when the pages directory is missing and downgrade non‑serializable data errors to warnings.
Added loading.throttle option and ability to customize/disable minimizer plugins
Upgrade to Nuxt 2 with Webpack 4, full ESM support, Babel 7 and new runtime options (nuxt start, nuxt legacy).
Upgrade Vue to address an XSS vulnerability in server‑side rendering.
Upgrade vue-loader from 13.7.0 to ^13.7.2
Added multiple features: customizable directory names, static.prefix, module layout support, extra render:route hook context, multi‑policy CSP, and SSR context injection.
Added SPA fallback template for static generated sites
Add postcss import resolver to dependencies
Added keep-alive prop for <nuxt/> and <nuxt-child/>, optional build.maxChunkSize, .jsx file support, options.ignore, and ability to inject <noscript> tags via head.
Fixed multiple bugs: default module options default to an empty object, corrected logError missing function, ensured Nuxt build exits with code 0, and fixed regression in module.addVendor with arrays.
CLI commands now exit with code 1 on any unwanted error (except nuxt dev) for better error handling.
Breaking changes: require Node.js >=8.0, replace this.nuxt.plugin() with this.hook(), and drop built‑in .ts support.
Add generate.interval to wait X ms between each render during nuxt generate.
Added `injectAs` property for plugins, enabling injection in root app and context (e.g., vue-i18n).
Added support for nested Vuex modules via the file API
Fixed layout delivery via window.$nuxt.layout to avoid premature middleware execution on client side.
Add ability to configure watchers options for chokidar and webpack through nuxt.config.js
Improved watch middleware and store with chokidar to prevent app restarts when folders are created during development.
Webpack builds run only once using @andyhall’s watchpack hack, cutting unnecessary rebuilds.
Breaking change – rename data method to asyncData and replace generate.routeParams with generate.routes (docs updated).
Fixed regression in route ordering introduced in v0.9.8
Introduced middleware support, wildcard .vue route (creates '/' named 'all'), and linked store/router files export their instances for plugin use.
Added bundle analyzer option to nuxt build, support for extendRoutes and customizable scrollBehavior via nuxt.config.js.
Added ability to generate store modules via file API and expanded transition options (enterToClass/leaveToClass, hooks in nuxt.config.js).
Add async/await support for component data methods
Fix custom layouts with dash in their names (issue #78).
Breaking change: <nuxt> container component removed and default layout moved to layouts/default.vue.
Added optional parameters for dynamic routes without an index.vue (e.g., /users/:id?)
Upgrade Vuex to 2.1.1 and Vue to 2.1.6
Breaking: dynamic routes no longer require nuxt.config.js, router.routes removed, added validate() for route params/query and child‑route directories, rename .router-link-active to .nuxt-link-active.