---
title: "Nuxt 3.7"
description: "Nuxt 3.7 已发布，带来了新的 CLI、原生 Web Streams 和 Response、渲染优化、异步上下文支持——以及更多内容。"
canonical_url: "https://nuxt.zhcndoc.com/blog/v3-7"
---
# Nuxt 3.7

> Nuxt 3.7 已发布，带来了新的 CLI、原生 Web Streams 和 Response、渲染优化、异步上下文支持——以及更多内容。

### 🐣 一个新的 CLI

我们使用 [unjs/citty](http://github.com/unjs/citty) 重构了 `nuxi`，这是第一个依赖于新版本的 Nuxt 发布的版本，安全地放在了自己的仓库中。我们对此有很大的计划-在 [nuxt/cli](https://github.com/nuxt/cli) 中可以查看一些功能和路线图讨论，并且请随时进行贡献！

- <a href="https://github.com/nuxt/cli/discussions/3" target="_blank"><strong>项目目标</strong></a>
- <a href="https://github.com/nuxt/cli/discussions/4" target="_blank">反馈和想法</a>
- <a href="https://github.com/nuxt/cli/discussions/7" target="_blank">Nuxt CLI 生成版本的发展之路</a>

Nuxi 现在与主要的 `nuxt` 版本解耦-我们计划将来更快地迭代和发布 nuxi，所以你可以期待即将推出的新功能！

### 🕸️ 原生 Web Streams 和 `Response`

通过改进 [unjs/h3](https://github.com/unjs/h3) 和 [unjs/nitro](https://github.com/unjs/nitro)，现在可以直接从服务器路由返回一个 `Response` 对象，这意味着你还可以在 Nuxt 中本地地返回和处理 streams。

👉 在 [unjs/h3](https://github.com/unjs/h3/releases) 和 [unjs/nitro](https://github.com/unjs/nitro/releases) 的发布说明中详细了解更多细节。

### 🔥 HTML 渲染优化

这个版本在从服务器渲染 HTML 响应方面有一些改进。我们现在在构建时决定是否预加载/预取资源（所以你可以在 `build:manifest` 钩子中自定义此设置）。我们现在还直接在 `unhead` 中管理它们的 HTML 渲染 ([#22179](https://github.com/nuxt/nuxt/pull/22179))，这意味着你可以配置 `<link>`、`<meta>`、`<script>`、`<style>` 等的 *顺序*。而且-在我们的初步测试中-速度甚至更快！

可以通过设置 `experimental.headNext` 标志来选择即将推出的 head 改进。目前这包括基于 [capo.js](https://github.com/rviscomi/capo.js) 的新排序算法 ([#22431](https://github.com/nuxt/nuxt/pull/22431))，并允许在 `unhead` 中发布未来的优化：

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

非常期待你的想法-你可以在[此讨论](https://github.com/nuxt/nuxt/discussions/22632)中回复任何问题/反馈。

### 🛠️ 构建环境快捷方式

在你的 Nuxt 配置中，你现在可以使用 `$client` 和 `$server` 快捷方式来轻松定义专门用于 Vite client/server ([#22302](https://github.com/nuxt/nuxt/pull/22302)) 或 webpack client/server ([#22304](https://github.com/nuxt/nuxt/pull/22304)) 构建的配置。以前只能使用 `vite:extendConfig` 和 `webpack:config` 钩子来实现这一点。

例如：

```ts
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 发布说明](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#440-2023-07-06) 中了解更多详情。

### 💪 TypeScript 更新

我们现在在生成的 `tsconfig.json` 中仅使用纯粹的相对路径，而不是设置 `baseUrl`。这意味着更好地支持像 Docker 镜像这样的开发环境，其中绝对路径可能与你的 IDE 不匹配 ([#22410](https://github.com/nuxt/nuxt/pull/22410))。

我们还设置了一些额外的编译器标志默认值，以与 Vite/TS 的建议相匹配 ([#22468](https://github.com/nuxt/nuxt/pull/22468))。

此外，在 `setPageLayout` 和 `<NuxtLayout name>` 中，你现在应该获得对布局的类型提示 ([#22363](https://github.com/nuxt/nuxt/pull/22362))。

### 🦄 异步上下文支持

如果你遇到过 "Nuxt 上下文不可用" 的问题，这可能对你有用。我们现在在 Bun 和 Node 下支持本机异步上下文，不过是在实验性标志下，在 Nuxt 和 Nitro 中都支持 ([#20918](https://github.com/nuxt/nuxt/pull/20918))。

这使得你可以在服务器上使用 Nuxt 组合式 API \_而不需要确保它们在设置函数中直接调用。对于 Nitro，它还允许在服务器路由中使用新的 `useEvent()` 实用工具。

要尝试它，请启用 `experimental.asyncContext`：

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

### 👓 Watcher 更新

我们修复了一些关于 watcher 的问题，意味着你应该需要更少地重新启动服务器-如果你使用的是图层，你应该会看到显著的性能提升。

### ⚗️ Nitro 2.6

来自 Nitro 2.6 的更多令人兴奋的功能正在到来，包括更小、更轻的服务器和一个 `.data` 目录中的新持久数据存储。

👉 在[完整的发布文章](https://unjs.zhcndoc.com/blog/2023-08-25-nitro-2.6)中阅读更多详情。

## ✅ 升级

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

```sh
npx nuxi upgrade --force
```

这将刷新你的锁文件，并确保你拉取 Nuxt 依赖的其他依赖项的更新，尤其是在 [unjs](https://github.com/unjs) 生态系统中。

## 📃 完整的更新日志

在 <https://github.com/nuxt/nuxt/releases/tag/v3.7.0> 上阅读完整的发布说明。


## Sitemap

See the full [sitemap](https://nuxt.zhcndoc.com/sitemap.md) for all pages.
