发布 Nuxt 4.0

365游戏厅平台 2026-07-14 05:20:54 admin

Nuxt 4.0 现已发布! 🎉

经过一年的实际测试,我们很高兴地宣布 Nuxt 4 正式发布。这是一个专注于稳定性的重大版本,为了改善开发体验,引入了一些经过深思熟虑的破坏性变更。

如果你一直在关注我们,你将认出其中许多特性和变更——如果你是新用户,我们希望你会喜欢它们。

🔥 有什么新功能?Nuxt 4 的核心目标是让你的开发体验更加顺畅

更整洁的项目组织:引入了新的 app/ 目录结构更智能的数据获取 - 我们借此机会解决了数据层的一些不一致问题并提升了性能更好的 TypeScript 支持:在项目的不同上下文(应用代码、服务端代码、shared/ 文件夹和配置)之间实现了基于项目的隔离更快的 CLI 和开发体验:通过采用内部套接字(sockets)和更快的 CLI 实现为什么重点关注这些特性?主要是因为这类改进需要进行技术上的破坏性变更。

总的来说,我们致力于采取一种拒绝炒作的发布方式。我们没有将功能积攒到大版本发布,而是已经在 Nuxt 3 的小版本更新中发布了这些改进。

我们也花费了大量时间探索如何以向后兼容的方式实现这些变更,我希望这意味着大多数 Nuxt 3 项目只需极少的努力即可完成升级。

我建议你在开始之前阅读升级指南,以了解你的应用中哪些部分可能会受到影响。

🗂️ 全新的项目结构最直观的变化是项目的组织方式。现在,你的应用代码默认存放在 app/ 目录下

my-nuxt-app/

├─ app/

│ ├─ assets/

│ ├─ components/

│ ├─ composables/

│ ├─ layouts/

│ ├─ middleware/

│ ├─ pages/

│ ├─ plugins/

│ ├─ utils/

│ ├─ app.vue

│ ├─ app.config.ts

│ └─ error.vue

├─ content/

├─ public/

├─ shared/

├─ server/

└─ nuxt.config.ts

这有助于将你的代码与 node_modules/ 和 .git/ 隔离开来,从而加快文件监听速度(特别是在 Windows 和 Linux 上)。它还为你的 IDE 提供了更好的上下文,使其能区分你是在处理客户端代码还是服务端代码。

不想迁移? 完全没问题!Nuxt 会自动检测你现有的结构并保持原样运行。🎨 更新的 UI 模板Nuxt 的初始模板焕然一新,具备改进的无障碍访问支持、默认标题和精细化的模板打磨(#27843).

🔄 更智能的数据获取我们优化了 useAsyncData 和 useFetch。现在,使用相同键(key)的多个组件会自动共享它们的数据。此外还增加了组件卸载时的自动清理功能,并且你可以使用响应式键在需要时重新获取数据。另外,我们让你对缓存数据的使用时机有了更多控制权。

其中一些功能已经在 Nuxt v3 的小版本中发布,因为我们一直在逐步推出这些更新。Nuxt v4 带来了不同的默认配置,我们预计在未来会继续完善这个数据层。

🔧 更好的 TypeScript 体验Nuxt 现在为你的应用代码、服务端代码、shared/ 文件夹和构建器代码分别创建独立的 TypeScript 项目。这意味着当你处理不同上下文时,将获得更好的自动补全、更准确的类型推断以及更少的混淆错误。

使用 Nuxt 4,你的项目根目录下只需要一个 tsconfig.json 文件!这可能是升级过程中最容易引起意外的问题,但从长远来看,它会让你的 TypeScript 体验顺畅得多。请报告你遇到的任何问题。🙏

⚡ 更快的 CLI 和开发体验在发布 v4 的同时,我们一直在致力于加速 @nuxt/cli。

更快的冷启动 - 开发服务器启动速度明显加快Node.js 编译缓存 - 自动重用 v8 编译缓存原生文件监听 - 使用 fs.watch API 以减少系统资源消耗基于套接字的通信 - CLI 和 Vite 开发服务器现在通过内部套接字而非网络端口进行通信,从而降低了开销——特别是在 Windows 上这些改进加在一起会显著提升你的日常开发体验,我们未来还有更多计划。

🚀 如何升级尽管任何重大版本都会带来破坏性变更,但我们此次发布的主要目标之一是确保升级路径尽可能平滑。大多数破坏性变更在过去一年里已经可以通过兼容性标志进行测试。

大多数项目应该可以顺利升级,但有几点需要注意:

Nuxt 2 的兼容性已从 @nuxt/kit 中移除。(这对模块开发者影响尤为明显。)一些遗留的工具函数和已弃用的功能已被清理。新的 TypeScript 设置可能会暴露出之前被掩盖的类型问题。一些模块可能需要进一步更新以完全兼容 Nuxt 4。不过请不必担心——对于大多数破坏性变更,都有相应的配置选项可以在你进行调整时回退到旧的行为。

1. 更新 Nuxt我们建议升级时运行

npx nuxt upgrade --dedupe

这也会对你的 lockfile 进行去重,并确保你引入了 Nuxt 依赖的其他包(特别是在 unjs 生态系统中)的更新。

2. 可选:使用迁移工具我们还与Codemod达成了合作,以自动化处理许多(虽然并非全部)迁移步骤

npmyarnpnpmbunnpx codemod@latest nuxt/4/migration-recipe

yarn dlx codemod@latest nuxt/4/migration-recipe

pnpm dlx codemod@latest nuxt/4/migration-recipe

bun x codemod@latest nuxt/4/migration-recipe

3. 测试与调整运行你的测试,检查一切是否构建正确,并修复出现的任何问题。升级指南中有针对特定场景的详细迁移步骤。

我们建议在开始升级之前完整阅读该指南,以了解你的应用中哪些部分可能会受到影响。

🗺️ 未来计划我们计划发布快速补丁版本来解决出现的问题。Nuxt 3 将继续获得维护更新(包括 bug 修复以及从 Nuxt 4 反向移植的特性),直到 2026 年 1 月底,所以如果你需要时间进行迁移,不必操之过急。

展望未来,我们计划尽快发布 Nuxt 5,它将引入 Nitro v3 和 h3 v2 以实现更好的性能,并采用 Vite 环境 API 以获得改进的(更快的!)开发体验。此外还有更多功能正在开发中!

此外,除了重大版本发布之外,我们还有许多令人兴奋的功能计划进入 Nuxt 3.x 和 4.x 的发布分支,包括 SSR 流式传输支持(#4753),第一方无障碍访问模块(#23255),内置 fetch 缓存策略(#26017),更强类型的 fetch 调用(将随 Nitro v3 发布),动态路由发现(#32196),多应用支持(#21635)等等。

❤️ 感谢这次发布离不开许多人的贡献,特别是在过去一年中测试 v4 兼容模式的用户。我非常感激——谢谢你们的帮助!

祝大家使用 Nuxt 4 编码愉快!🚀

📑 完整发布说明阅读 Nuxt v4.0.0 的完整发布说明。衷心感谢所有参与本次发布的人。❤️

相关文章

百度收藏的文件在哪里看?

音乐软件

晏姽婳全部小说