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

Nuxt 3.7

Nuxt 3.7 现已推出,带来了新的 CLI、原生 Web 流和响应、渲染优化、异步上下文支持等等。

🐣 新的 CLI

我们使用 unjs/citty 重构了 nuxi,这是第一个依赖于新版本的 Nuxt 版本,安全地位于其自己的存储库中。我们对此有宏伟的计划 - 请查看 nuxt/cli 中的一些功能和路线图讨论,并随时贡献!

Nuxi 现在与主 nuxt 版本分离 - 我们计划在未来更快地迭代和发布 nuxi,因此您可以期待很快就会有新功能推出!

🕸️ 原生 Web 流和 Response

随着 unjs/h3unjs/nitro 的改进,现在可以从服务器路由直接返回 Response 对象,这意味着在 Nuxt 中也可以原生返回和处理流。

👉 查看 unjs/h3unjs/nitro 版本说明中的完整详细信息。

🔥 HTML 渲染优化

此版本在从服务器渲染 HTML 响应方面进行了一些改进。我们现在在构建时确定是否预加载/预取资源(因此您可以在 build:manifest 钩子中自定义此设置)。我们现在还在 unhead 中直接管理它们的 HTML 渲染(#22179),这意味着您可以配置 <link><meta><script><style> 等的顺序。而且 - 在我们的初步测试中 - 它甚至更快!

可以使用 experimental.headNext 标志选择加入即将推出的头部改进。这目前包括一个基于 capo.js 的新排序算法(#22431),并允许在 unhead 中发布未来优化时启用它们。

export default defineNuxtConfig({
  experimental: {
    headNext: true
  }
})

我们非常乐意听到您的想法 - 您可以在 此讨论 中回复任何问题/反馈。

🛠️ 构建环境快捷方式

在您的 Nuxt 配置中,您现在可以使用 $client$server 快捷方式轻松定义仅适用于 Vite 客户端/服务器(#22302)或 webpack 客户端/服务器(#22304)构建的配置。以前这只能通过 vite:extendConfigwebpack:config 钩子实现。

例如

export default defineNuxtConfig({
  vite: {
    $client: {
      build: {
        rollupOptions: {
          output: {
            chunkFileNames: '_nuxt/[hash].js',
            assetFileNames: '_nuxt/[hash][extname]',
            entryFileNames: '_nuxt/[hash].js'
          }
        }
      }
    }
  }
})

⚡️ Vite 4.4

我们选择取消固定 Vite 的次要版本,这意味着每当 Vite 发布新的功能版本时,您都可以立即选择加入。Vite 4.4 带来了许多令人兴奋的功能,包括实验性的 Lightning CSS 支持等等!

👉 查看 Vite 版本说明 以了解更多信息。

💪 TypeScript 更新

我们现在在生成的 tsconfig.json 中使用纯相对路径,而不是设置 baseUrl。这意味着更好地支持 docker 镜像等开发环境,其中绝对路径可能与您的 IDE 不匹配(#22410)。

我们还设置了一些额外的编译器标志默认值以匹配 Vite/TS 建议(#22468)。

此外,您现在应该可以获得在 setPageLayout<NuxtLayout name> 中对布局的类型提示访问权限(#22363)。

🦄 异步上下文支持

如果您曾经遇到过“Nuxt 上下文不可用”的问题,这可能适合您。我们现在在实验性标志下支持 Bun 和 Node 的原生异步上下文,在 Nuxt 和 Nitro 中均如此(#20918)。

这使得能够在服务器上使用 Nuxt 组合式函数而无需确保它们是在设置函数中直接调用的。它还在 Nitro 中允许这样做,并提供了一个新的 useEvent() 实用程序,可在服务器路由中使用。

要试用它,您可以启用 experimental.asyncContext

export default defineNuxtConfig({
  experimental: {
    asyncContext: true
  }
})

👓 观察者更新

我们修复了观察者的一些问题,这意味着您需要重新启动服务器的次数更少 - 并且如果您使用层,您应该会看到性能显着提升。

⚗️ Nitro 2.6

Nitro 2.6 直接带来了更多令人兴奋的功能,包括更小、更轻的服务器和在 .data 目录中新的持久数据存储。

👉 在 完整的发布文章 中阅读更多内容。

✅ 升级

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

npx nuxi upgrade --force

这也会刷新您的锁定文件,并确保您提取 Nuxt 依赖的其他依赖项的更新,尤其是在 unjs 生态系统中。

📃 完整变更日志

https://github.com/nuxt/nuxt/releases/tag/v3.7.0 上阅读完整的版本说明

← 返回博客