Change8

v4.0.0-alpha.1

Breaking Changes
📦 nuxtView on GitHub →
9 breaking6 features🐛 7 fixes🔧 12 symbols

Summary

Nuxt 4.0.0-alpha.1 is the first early-testing release of Nuxt 4, featuring Nitropack v3 support, Vite 6 integration, and the removal of legacy Nuxt 2 compatibility.

⚠️ Breaking Changes

  • Default compatibilityVersion is now set to 4.
  • Dropped support for Nuxt 2 and Nuxt Bridge projects.
  • Removed old experimental options and the globalName property.
  • The __NUXT__ object is now removed from the DOM after hydration.
  • The builder:watch hook now emits absolute paths instead of relative ones.
  • Vite dev bundler configuration is no longer allowed.
  • render:html is no longer called for server islands to improve performance.
  • Improved default asyncData value behavior which may change how initial data is handled.
  • Internal majorVersion bumped to 4.

Migration Steps

  1. Enable compatibility mode as described in the Nuxt upgrade guide.
  2. Update project configuration to support compatibilityVersion: 4.
  3. Ensure any custom hooks using builder:watch are updated to handle absolute paths.
  4. Remove any usage of the deprecated globalName property or old experimental options.
  5. Check for reliance on the __NUXT__ object post-hydration as it is now removed.

✨ New Features

  • Integration with Chrome DevTools Workspaces.
  • Support for Nitropack v3 (nightly).
  • Caching for Vue app build outputs.
  • Split dev and prod build directories in schema.
  • Generation of basic JSDoc for module configuration entries.
  • Added useScriptCrisp scripts stub.

🐛 Bug Fixes

  • Fixed merging order for layer array-type configurations.
  • Hidden unhandled error messages in production environments.
  • Ensured appConfig sources are not duplicated.
  • Fixed ClientOnly slot wrapping with h().
  • Restored missing reset of .execute in nuxt.
  • Re-enabled purgeCachedData by default in schema.
  • Updated webpack dynamic require regex to match new chunk formats.

🔧 Affected Symbols

builder:watchasyncDatarender:htmlcompatibilityVersionglobalName__NUXT__useScriptCrispresolvePathtryResolveModulerequireModuletryRequireModuleClientOnly