Announcement·
Nuxt 3 已经取得了惊人的成功。它拥有:
- 🎉 每周 1,000,000+ 次下载
- 🤝 3000+ 贡献者
- 📦 90+ 官方模块
- 🌍 超过 100,000 次创建的仓库
- 🏆 52k+ GitHub 星标
- 💻 600+ 在线工作区
现在,我们要很高兴地宣布 Nuxt 4 将于 2024 年 6 月发布!
为什么选择 Nuxt 4?
Nuxt 4 将是一个主要版本,但我们希望以最小的摩擦升级到它。它将基于 Nuxt 3,但包含大量的更新、改进和修复,将它们整合在一起,并成为 Nuxt 的未来。
主要目标
- 整合生态系统:将核心模块和包更新到与 Nuxt 4 兼容的主要版本。
- 简化 Nuxt:删除已弃用的代码,并使代码库更易于维护和贡献。
- 性能优化:使用新的 Vite/Rollup 版本(包括 Vite 5)实现更好的性能。
- 更好的开发体验:改进开发者体验(DX),包括类型、错误消息和工具支持。
- 更好的文档:改进文档,包括迁移指南、新功能和最佳实践。
- 更好的服务器体验:对服务器渲染(SSR)支持进行改进,包括边缘渲染。
- 更好的类型支持:使用新的 TypeScript 5 版本实现更好的类型支持。
- 更好的稳定性:解决现有的 bug 和问题,使 Nuxt 更稳定和可靠。
- 更好的跨平台支持:改进对 Nitro 在不同环境(Cloudflare、Vercel 等)的支持。
路线图
2024 年 1-2 月
- 发布带有 v4 功能的 v3.10 和 v3.11(预览)
- 将主要模块更新到兼容 v4 的 beta 版本
- 更新文档,包括迁移指南
- 发布 rc.1 候选版本
2024 年 3-4 月
- 基于反馈修复 bug 并改进 v4 功能
- 根据需要发布更多候选版本(rc.2、rc.3 等)
- 完成文档
2024 年 5 月
- 发布 v4.0.0 stable
Nuxt 4 之后
- 继续改进 v4 并修复 bug
- 开始规划 v5
新功能
虽然 Nuxt 4 将是一个整合版本,但我们也有一些新功能计划:
- ✨ 新的 Nuxt 内容模块(v3)
- 🖼️ 更新的图像模块(v1)
- 🎨 更新的 UI 库(Nuxt UI v3)
- 🔍 更好的搜索体验(新模块)
- 📦 更新的模块系统
- 🚀 更好的性能(例如,使用 Vite 5)
- 🔨 更好的构建工具支持
- 📝 更好的文档和错误消息
- 🎯 更好的 TypeScript 支持
- ⚡ 更小的包大小
生态系统更新
官方模块
我们将把所有官方模块更新到兼容 Nuxt 4 的主要版本,包括:
- 📦 @nuxt/content
- 🖼️ @nuxt/image
- 🎨 @nuxtjs/color-mode
- 🔗 @nuxt/http
- 🔐 @nuxtjs/auth
- 📊 @nuxt/telemetry
- 🌐 @nuxtjs/i18n
- 📝 @nuxtjs/storybook
- 🎭 @pinia/nuxt
- 🦕 @nuxtjs/axios
- 📦 @nuxtjs/proxy
- 🎨 @nuxtjs/tailwindcss
- 📝 @nuxtjs/mdc
- 🚀 @nuxtjs/supabase
- 🔍 @nuxtjs/alters
- 📊 @nuxtjs/analytics
(有些模块可能已经弃用或被其他模块替代。)
模块生态系统
我们还将更新模块生态系统,以更好地支持 Nuxt 4:
- 📦 更新的模块 API
- 🔗 更好的模块文档
- 🛠️ 更好的工具,用于创建和测试模块
- 📝 模块最佳实践和指南
升级到 Nuxt 4
从 Nuxt 3 升级到 Nuxt 4 应该是无缝的,但为了获得最大的兼容性,我们建议按照以下步骤操作:
- 更新到 Nuxt 3.11(预览 v4 功能)
- 运行
npx nuxi upgrade升级依赖项 - 按照迁移指南迁移任何破坏性更改
- 测试应用程序并修复任何问题
- 更新到 Nuxt 4 stable
我们还将提供一个迁移指南,详细介绍如何升级到 Nuxt 4,包括:
- 破坏性更改
- 弃用警告
- 更新的模块和包
- 修复常见问题的技巧
- 最佳实践
兼容性
Nuxt 4 将支持以下版本:
- Node.js:18.17.0、20.3.0+
- Nitro:2.9+
- Vue:3.4+
- Vite:5.0+
反馈
我们希望听到您的反馈!请通过以下方式与我们联系:
致谢
我们要感谢所有贡献者、用户和社区成员,他们让 Nuxt 3 如此成功。我们期待在 Nuxt 4 中与您合作!
下一步
- 关注 Nuxt 博客 了解更新
- 加入 Nuxt Discord
- 开始在您的项目中使用 Nuxt 4
🎉 让我们继续构建更好的 Web!