Nuxt Nation 大会即将到来。加入我们,时间为 11 月 12 日至 13 日。
发布·  

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 构建器

我们很高兴宣布为 rspack 推出一个新的 Nuxt 一级构建器。它目前仍处于实验阶段,但我们已经重构了内部 Nuxt 虚拟文件系统以使用 unplugin 来实现这一点。

如果您喜欢它,请告诉我们 - 并随时提出您遇到的任何问题。

👉 要尝试它,您可以使用 此启动器 - 或者只需安装 @nuxt/rspack-builder 并设置 builder: 'rspack' 在您的 nuxt 配置文件中。

✨ 新的 Composable

我们提供了新的 useResponseHeaderuseRuntimeHook Composable(#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 来选择加入此功能,因为它可以解决许多错误。

🗺️ v3.15 路线图

它们没有及时赶上 v3.14,但对于下一个次要版本,您可以期待(除其他事项外)

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

✅ 升级

像往常一样,我们建议您运行以下命令进行升级

npx nuxi@latest upgrade --force

这也会刷新您的 lockfile,并确保您从 Nuxt 依赖的其他依赖项(尤其是在 unjs 生态系统中)中获取更新。

完整发布说明

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

非常感谢所有参与此版本发布的人。我们将在接下来的版本中为您带来激动人心的新功能!❤️

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

← 返回博客