
# 高级

> 底层选项。大多数项目都不需要修改这些选项。

::note
本页所有示例都假设已在 `nitro.config.ts` 中导入以下内容：

```ts
import { defineConfig } from "nitro";
```
::

### `dev`

- 默认值：开发环境为 `true`{lang=ts}，生产环境为 `false`{lang=ts}

::warning
这是高级配置。配置错误可能导致问题。
::

```ts
export default defineConfig({
  dev: true, // force development mode behavior
});
```

### `typescript`

- 默认值：`{}`{lang=ts}

TypeScript 选项。`tsConfig` 是打包器用于 JSX 选项和路径别名的配置，默认为项目的 `tsconfig.json`。`tsconfigPaths`（默认值：`true`）会为服务器源文件解析其中的路径别名（`compilerOptions.paths`）。

```ts
export default defineConfig({
  typescript: {
    tsConfig: {
      compilerOptions: {
        jsx: "react-jsx",
      },
    },
  },
});
```

### `hooks`

::warning
这是高级配置。配置错误可能导致问题。
::

Nitro 钩子。更多信息请参阅 [hookable](https://github.com/unjs/hookable)。

```ts
export default defineConfig({
  hooks: {
    compiled(nitro) {
      console.log("Build compiled successfully!");
    },
  },
});
```

名称相同的钩子不会互相覆盖。部署预设定义的钩子会先运行，然后运行配置中的钩子。定义同名钩子不再会禁用预设中的钩子。

:read-more{to="/docs/lifecycle"}

### `commands`

::warning
这是高级配置。配置错误可能导致问题。
::

预览和部署命令提示通常由部署预设填充。

`deploy` 可以是 Shell 命令（`./` 路径相对于输出目录解析），也可以是接收 Nitro 实例的函数，供以编程方式部署的预设使用。两者都可通过 [`nitro deploy`](/docs/cli#nitro-deploy) 和 [`deploy`](/docs/utils#nitrobuilder) 构建器 API 运行。

```ts
export default defineConfig({
  commands: {
    preview: "node ./server/index.mjs",
    deploy: "npx wrangler deploy ./server/index.mjs",
  },
});
```

### `devErrorHandler`

::warning
这是高级配置。配置错误可能导致问题。
::

开发错误的自定义错误处理函数。

```ts
export default defineConfig({
  devErrorHandler: (error, event) => {
    return new Response(`Dev error: ${error.message}`, { status: 500 });
  },
});
```

### `tracingChannel`

**🧪 实验性功能**

- 类型：`boolean`{lang=ts} | `{ srvx?: boolean, h3?: boolean, unstorage?: boolean, db0?: boolean }`{lang=ts}
- 默认值：`false`{lang=ts}

`tracingChannel` 选项会为请求处理启用 [`TracingChannel`](https://nodejs.org/api/diagnostics_channel.html#class-tracingchannel) 插桩。该功能已接入 Node.js，也适用于 Bun、Deno 和开发预设，即所有提供 `node:diagnostics_channel` 的运行时。已发布的 `srvx.request` 和 `h3.request` 通道在这些运行时中仍可用，可供 APM 工具和自定义订阅器使用。

传入 `true` 可启用所有通道，也可以传入对象逐一切换通道。

```ts
export default defineConfig({
  tracingChannel: true,
});
```

### `framework`

- 默认值：`{ name: "nitro", version: "<current>" }`{lang=ts}

框架信息。由预设和构建信息使用，通常由上层框架（例如 Nuxt）设置。

```ts
export default defineConfig({
  framework: { name: "my-framework", version: "2.0.0" },
});
```

### `manifest`

构建清单选项。使用 `deploymentId` 可在构建清单中包含自定义部署标识符（部分预设会从平台环境变量中自动填充）。

```ts
export default defineConfig({
  manifest: { deploymentId: process.env.DEPLOY_ID },
});
```
