扩展定制 Configuration

定制并扩展 Nitro 默认设置。

相关阅读:请参阅配置参考以了解可用选项。

您可以使用配置文件定制您的 Nitro 构建器。

ts
nitro.config.ts
ts
export default defineNitroConfig({
  // Nitro options
})

如果您使用的是 Nuxt,请在 Nuxt 配置中使用 nitro 选项。

Nitro 使用 unjs/c12 加载配置,从而提供更多可能性,例如在当前工作目录或用户主目录中使用 .nitrorc 文件。

运行时配置

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

首先,您需要在配置文件中定义运行时配置。

ts
nitro.config.ts
ts
export default defineNitroConfig({
  runtimeConfig: {
    apiToken: 'dev_token', // `dev_token`是默认值
  }
})

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

ts
api/example.get.ts (nitro)
ts
export default defineEventHandler((event) => {
  return useRuntimeConfig(event).apiToken // Returns `dev_token`
})

本地开发

最后,您可以使用环境变量更新运行时配置。您可以在开发中使用 .env 文件,在生产中使用平台变量(见下文)。

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

.env
bash
NITRO_API_TOKEN="123"

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

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

生产

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

bash
.env (nitro)
bash
NITRO_API_TOKEN="123"

在运行时配置中,使用 camelCase 定义键。在环境变量中,使用 snake_case 和大写字母定义键。

ts
{
  helloWorld: 'foo'
}
bash
NITRO_HELLO_WORLD="foo"