我们原计划在 2024 年 6 月发布 Nuxt 4,但事情并不总是按计划进行。我认为现在采取不同的策略更为合适:
👉 Nuxt 4 alpha 将于 2025 年 6 月 2 日发布,稳定版本将在月底发布。Nuxt 5 将在 Nitro v3 准备就绪后推出。
为什么要两个版本?
老实说,事后看来,我认为我们本该去年发布 Nuxt v4。这样能够更好地符合我们每年一次审慎大版本发布的计划。
另一方面,这也让我们有时间在众多项目中进行测试,可以通过一个开关选择使用 Nuxt 4 的破坏性变更。我认为我们应该发布这些变更作为 Nuxt v4,原因有两个:
- 已经有人在使用它了。我经常听说有团队在生产环境中使用
compatibilityVersion: 4
。这个选项原本仅用于测试,但已经证明足够稳定适合生产环境。我们希望将其正式发布,给这些团队稳定版的保障。 - 这会改善迁移过程。采用从 v3 -> v4 再到 v4 -> v5 的两阶段迁移会使升级更顺畅。我们还没有确定 Nitro v3 的最终破坏性变更列表,这意味着我们可以花足够时间确保 Nitro 升级顺利,同时不延迟去年以来计划的 Nuxt 变更的采用。
此外,未来我们将尽最大努力将 Nuxt 发布与其关键依赖(如 Vite 或 Nitro)解耦。
含有哪些内容?
Nuxt 4 包含你一直用 compatibilityVersion: 4
测试的所有功能:
- 🗂️ 新目录结构 - 代码放在
app/
,结构更清晰,IDE 性能更佳 - 🔄 改进的数据获取 - 更智能的
useAsyncData
和useFetch
,具备更好的缓存和清理机制 - 🏷️ 一致的组件名称 - Vue DevTools 和
<KeepAlive>
现在显示与 Nuxt 自动导入相同的名称 - 📄 增强的头部管理 - 放弃 Unhead v2 的过时功能,性能更好,标签优化更佳
…以及许多其他改进,详见升级指南。我们还将发布若干额外改动,包括:
- 为采用 Vite 环境 API 做准备(使用单一开发服务器)
- 改进环境类型处理(针对服务器、客户端和共享代码)
Nitro 进展如何?
我们不会延迟 Nitro v3 的采用。我们计划 Nuxt 5 与 Nitro v3 同时发布,时间与我们最初计划一致,即使那是在 Nuxt v4 发布几个月之后。
尽管过去一年经历了延迟,Nitro 的进展非常惊人。作为整个团队,我们对 Nitro v3 和 h3 v2 的规划感到非常兴奋。
虽然 Nuxt 4 初期不会包含这些升级,但 Nuxt v4 和 Nitro v3 同步发布,将使我们在 Nuxt 5 推出时能够更彻底地测试 Nuxt 和 Nitro 在整个生态系统中的表现。
Nuxt 3 怎么办?
Nuxt 4 稳定版本首次发布后,我们会继续维护和支持 Nuxt 3 —— 并且在 Nuxt 5 发布后仍同时支持 Nuxt 3 和 Nuxt 4。我们有意将这些版本的支持周期设为 六个月,因为我们相信升级路径会很顺利。
(我发布 Nuxt 4 升级版本的主要目标是保证升级尽可能顺畅。)
不过,我会密切关注生态系统升级的速度和成效。如果出现问题,我肯定会延长那六个月的维护支持期。我们绝不希望抛弃任何用户。
这一段时间内,意味着我们会在三个版本之间积极回溯特性和修复。但我认为这很值得。毕竟——过去一年我们就是这样为 Nuxt 4 做准备的。
Nuxt 3 | 持续更新直至 2025 年底 |
Nuxt 4 | 支持至 2026 年中(预计) |
Nuxt 5 | 按照我们通常的模式提供长期支持 |
接下来怎么办?
今天我们发布 Nuxt v4 alpha 1!欢迎早期用户进行测试。遇到任何问题,请向 Nuxt 或你所使用的模块反馈。
接下来几周你可以期待这些事情:
- 我们计划为社区模块向 nuxt/modules 仓库提交上游 PR,并为模块作者创建迁移指南。
- 我们将为 Nuxt 3 用户制作完整的升级指南,包含破坏性变更列表及迁移方法。(当前升级指南只说明了如何启用兼容模式,和 Nuxt 4 仍有差异。)
- 本月我们只发布 v3 的 Bug 修复,推迟新功能回溯直到 v4 发布之后。
- 我们会更新 nuxt.com 上的文档,允许在
3.x
、4.x
和(即将)5.x
文档间切换。 - 一旦发布候选版本(目标是 6 月 23 日),期待大家参与最后一轮测试。此阶段以后只会发布 Bug 修复。
- v4 发布后,我们将把
main
分支分离成4.x
,以采用h3
和nitro
的边缘版本,并开始 Nuxt 5 开发。
我对这个时间表感到非常兴奋 —— 感谢你们过去一年以来的耐心和信任!