配置

自定义和扩展 Nitro 默认值。
Nitro v3 Alpha 文档仍在开发中——可能会有更新、不完善的地方和偶尔的不准确信息。
有关可用选项,请参阅配置参考

你可以使用配置文件自定义你的 Nitro 构建器。

import { defineNitroConfig } from "nitro/config";

export default defineNitroConfig({
  // Nitro 选项
})
Nitro 使用 c12 加载配置,提供更多可能性,例如在当前工作目录或用户主目录中使用 .nitrorc 文件。

Runtime 配置

Nitro 提供了一个 runtime config API,用于在你的应用程序中暴露配置,并能够通过设置环境变量在 runtime 更新它。当你想要为不同环境(例如开发、测试、生产)暴露不同的配置值时,这很有用。例如,你可以使用它为不同环境暴露不同的 API 端点或暴露不同的功能标志。

首先,你需要在配置文件中定义 runtime config。

nitro.config.ts
import { defineNitroConfig } from "nitro/config";

export default defineNitroConfig({
  runtimeConfig: {
    apiToken: "dev_token", // `dev_token` 是默认值
  }
});

你现在可以使用 useRuntimeConfig(event) 访问 runtime config。在事件处理器和实用程序中使用 useRuntimeConfig(event),并避免在环境全局上下文中调用它。这可能导致意外行为,例如在不同请求之间共享相同的 runtime config。

api/example.get.ts
import { defineHandler } from "nitro/h3";

export default defineHandler((event) => {
  return useRuntimeConfig(event).apiToken; // 返回 `dev_token`
});

本地开发

最后,你可以使用环境变量更新 runtime config。你可以在开发中使用 .env.env.local 文件,在生产中使用平台变量(见下文)。

在项目根目录中创建 .env 文件:

.env
NITRO_API_TOKEN="123"

重新启动开发服务器,获取 /api/example 端点,你应该看到 123 作为响应,而不是 dev_token

不要忘记你仍然可以使用 import.meta.envprocess.env 全局访问环境变量,但避免在环境全局上下文中使用它们以防止意外行为。

生产环境

你可以在生产环境中定义变量来更新 runtime config。所有变量必须以 NITRO_ 为前缀才能应用于 runtime config。它们将覆盖在 nitro.config.ts 文件中定义的 runtime config 变量。

.env
NITRO_API_TOKEN="123"

在 runtime config 中,使用 camelCase 定义键。在环境变量中,使用 snake_case 和大写定义键。

{
  helloWorld: "foo"
}
NITRO_HELLO_WORLD="foo"