发布·  

Nuxt 3.7

Nuxt 3.7 发布了,带来了新的 CLI、原生 Web Streams 和响应、渲染优化、异步上下文支持等诸多功能。
Daniel Roe

Daniel Roe

@danielroe.dev

🐣 全新的 CLI

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

Nuxi 现在与主 nuxt 版本解耦——我们计划未来更快地迭代和发布 nuxi,因此您可以期待新功能即将推出!

🕸️ 原生 Web Streams 和 Response

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

👉 请查看unjs/h3等等unjs/nitro发行说明

中的完整详细信息。

🔥 HTML 渲染优化#22179)中管理它们的 HTML 渲染,这意味着您可以配置 <link><meta><script><style> 等的**顺序**。而且——在我们的初步测试中——它甚至更快了!

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

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

我们很想听听您的想法——您可以在此讨论.

中回复任何问题/反馈。

🛠️ 构建环境快捷方式#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 context unavailable”问题,这可能是为您准备的。我们现在在 Nuxt 和 Nitro 中都支持 Bun 和 Node 的原生异步上下文,通过实验性标志启用(#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