v4.0.0-alpha.1
Breaking Changes📦 nuxtView on GitHub →
⚠ 9 breaking✨ 6 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
- Enable compatibility mode as described in the Nuxt upgrade guide.
- Update project configuration to support compatibilityVersion: 4.
- Ensure any custom hooks using builder:watch are updated to handle absolute paths.
- Remove any usage of the deprecated globalName property or old experimental options.
- 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