在后台,为了 nuxt v4 的发布,已经进行了一些准备工作(特别是在 unjs
方面,为 Nitro v3 做准备!)
⚡️ 由 jiti
提供的更快启动
加载 nuxt 配置文件、模块以及其他构建时代码现在由 jiti
v2 提供支持。您可以在 jiti v2 发布说明 中查看更多信息,但最重要的特性之一是原生的 Node ESM 导入(在可能的情况下),这应该意味着更快的启动时间。✨
📂 与客户端/服务器共享代码和类型的共享文件夹
您永远不应在 Nitro 代码中导入 Vue 应用代码(或反之亦然)。但这在共享不依赖于 Nitro/Vue 环境的类型或工具时导致了一些摩擦点。
为此,我们新增了一个 shared/
文件夹(#28682)。您不能将 Vue 或 Nitro 代码导入此文件夹中的文件,但它会生成您可以在应用的其他部分使用的自动导入。
如果需要,您可以使用新的 #shared
别名,它指向此文件夹。
共享文件夹与您的 server/
文件夹并排存在。(如果您使用 compatibilityVersion: 4
,这意味着它不在您的 app/
文件夹内。)
🦀 rspack
构建器
我们很高兴地宣布一个新的一流 Nuxt 构建器 rspack
。它仍在实验阶段,但我们已重构了内部 Nuxt 虚拟文件系统,以使用 unplugin
来实现这一点。
请告诉我们您是否喜欢它 - 如果您遇到任何问题,请随时提出。
👉 要试用它,您可以使用 这个起始项目 - 或者直接安装 @nuxt/rspack-builder
并在 Nuxt 配置文件中设置 builder: 'rspack'
。
✨ 新的组合函数
我们新增了 useResponseHeader
和 useRuntimeHook
组合函数(#27131 和 #29741)。
🔧 新的模块工具
我们现在有了一个新的 addServerTemplate
工具(#29320),用于在 Nitro 运行时路由内部添加虚拟文件以供访问。
🚧 v4 更改
我们合并了一些仅在 compatibilityVersion: 4
时生效的更改,但您可以提前选择加入。
- 之前,如果您有一个像
~/components/App/Header.vue
的组件,它在您的开发工具中会显示为<Header>
。从 v4 开始,我们确保这是<AppHeader>
,但是这是可选择的,以避免破坏您可能实现的任何手动<KeepAlive>
。(#28745)。 - Nuxt 从您的文件中扫描页面元数据,在调用
pages:extend
之前。但是这导致了一些混淆的行为,因为在此时添加的页面并没有尊重他们的页面元数据。因此我们现在在调用pages:extend
之前不扫描元数据。相反,我们有一个新的pages:resolved
钩子,在pages:extend
之后调用,所有页面都已增强调用其元数据。虽然我建议通过将experimental.scanPageMeta
设置为after-resolve
来选择加入,因为它解决了多个 bug。
🗺️ v3.15 路线图
他们未能在 v3.14 发布前完成,但在下一个小版本中,您可以期待(除了其他内容):
✅ 升级
像往常一样,我们的升级推荐是运行:
npx nuxi@latest upgrade --force
这将刷新您的锁定文件,并确保您从 Nuxt 依赖的其他依赖项中拉取更新,特别是在 unjs 生态系统中。
完整发布说明
非常感谢所有参与此发布的人员。我们在下一个版本中有令人兴奋的事情等着大家!❤️
如果您有任何反馈或问题,请随时告诉我们!🙏