Javascript is required
3.14更新

在幕后,为了 Nuxt v4 的发布已经进行了大量工作(特别是在 unjs 方面为 Nitro v3 做准备!)

⚡️ 由 jiti 驱动的更快启动速度

现在,Nuxt 配置文件的加载,以及模块和其他构建时代码,都由 jiti v2 驱动。您可以在 jiti v2 发布说明中了解更多详情,但最重要的一点是原生 node esm 导入(在可能的情况下),这意味着更快的启动速度。✨

📂 用于客户端/服务器共享代码和类型的共享文件夹

您永远不应该在 nitro 代码中导入 Vue 应用程序代码(反之亦然)。但在共享不依赖于 nitro/vue 上下文的类型或实用工具时,这一直是一个摩擦点。

为此,我们有了新的 shared/ 文件夹(#28682)。您不能将 Vue 或 nitro 代码导入到这个文件夹中的文件,但它会生成可以在应用程序其他部分使用的自动导入。

如果需要,您可以使用指向此文件夹的新 #shared 别名。

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 这样的组件,它会在开发工具中显示为

。从 v4 开始,我们确保这显示为 ,但这是可选的,以避免破坏您可能已实现的任何手动 。(#28745)

2.Nuxt 在调用 pages:extend 之前扫描文件中的页面元数据。但这导致了一些令人困惑的行为,因为在此时添加的页面的页面元数据不会被尊重。所以我们现在在调用 pages:extend 之前不扫描元数据。相反,我们有一个新的 pages:resolved 钩子,它在 pages:extend 之后调用,在所有页面都已用其元数据增强之后调用。我建议通过将 experimental.scanPageMeta 设置为 after-resolve 来选择使用这个功能,因为它解决了许多错误。

🗺️ v3.15 路线图

这些功能没有及时赶上 v3.14,但在下一个小版本中,您可以期待(除其他外):

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