发布·  

Nuxt 3.14

Nuxt 3.14 发布 - 新增 rspack 构建器,共享文件夹,以及性能提升!

在后台,为了 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'

✨ 新的组合函数

我们新增了 useResponseHeaderuseRuntimeHook 组合函数(#27131#29741)。

🔧 新的模块工具

我们现在有了一个新的 addServerTemplate 工具(#29320),用于在 Nitro 运行时路由内部添加虚拟文件以供访问。

🚧 v4 更改

我们合并了一些仅在 compatibilityVersion: 4 时生效的更改,但您可以提前选择加入。

  1. 之前,如果您有一个像 ~/components/App/Header.vue 的组件,它在您的开发工具中会显示为 <Header>。从 v4 开始,我们确保这是 <AppHeader>,但是这是可选择的,以避免破坏您可能实现的任何手动 <KeepAlive>。(#28745)。
  2. Nuxt 从您的文件中扫描页面元数据,在调用 pages:extend 之前。但是这导致了一些混淆的行为,因为在此时添加的页面并没有尊重他们的页面元数据。因此我们现在在调用 pages:extend 之前不扫描元数据。相反,我们有一个新的 pages:resolved 钩子,在 pages:extend 之后调用,所有页面都已增强调用其元数据。虽然我建议通过将 experimental.scanPageMeta 设置为 after-resolve 来选择加入,因为它解决了多个 bug。

🗺️ v3.15 路线图

他们未能在 v3.14 发布前完成,但在下一个小版本中,您可以期待(除了其他内容):

  • 从模块中自动导入的指令(#29203
  • '隔离' 页面渲染(#29366
  • 延迟水合(#26468

✅ 升级

像往常一样,我们的升级推荐是运行:

npx nuxi@latest upgrade --force

这将刷新您的锁定文件,并确保您从 Nuxt 依赖的其他依赖项中拉取更新,特别是在 unjs 生态系统中。

完整发布说明

阅读 Nuxt v3.14.0 的完整发布说明。

非常感谢所有参与此发布的人员。我们在下一个版本中有令人兴奋的事情等着大家!❤️

如果您有任何反馈或问题,请随时告诉我们!🙏