配置
自定义和扩展 Nitro 默认值。
您可以使用配置文件自定义您的 Nitro 构建器。
export default defineNitroConfig({
// Nitro 选项
})
export default defineNuxtConfig({
nitro: {
// Nitro options
}
})
如果您正在使用 Nuxt,请改用 Nuxt 配置中的
nitro 选项。Nitro 使用 unjs/c12 加载配置,提供了更多可能性,例如在当前工作目录或用户主目录中使用
.nitrorc 文件。运行时配置
Nitro 提供了一个运行时配置 API,可以在您的应用程序中公开配置,并能够通过设置环境变量在运行时更新它。这在您希望为不同环境(例如开发、暂存、生产)公开不同的配置值时很有用。例如,您可以使用它为不同环境公开不同的 API 端点或公开不同的功能标志。
首先,您需要在配置文件中定义运行时配置。
export default defineNitroConfig({
runtimeConfig: {
apiToken: "dev_token", // `dev_token` 是默认值
}
})
export default defineNuxtConfig({
runtimeConfig: {
apiToken: "dev_token", // `dev_token` is the default value
}
})
您现在可以使用 useRuntimeConfig(event) 访问运行时配置。在事件处理程序和工具中使用 useRuntimeConfig(event),避免 在环境全局上下文中调用它。这可能导致意外行为,例如在不同请求之间共享相同的运行时配置。
server/api/example.get.ts
export default defineEventHandler((event) => {
return useRuntimeConfig(event).apiToken // 返回 `dev_token`
});
本地开发
最后,您可以使用环境变量更新运行时配置。您可以在开发环境中使用 .env 文件,在生产环境中使用平台变量(参见下文)。
在您的项目根目录中创建 .env 文件:
.env
NITRO_API_TOKEN="123"
重新启动开发服务器,获取 /api/example 端点,您应该会看到 123 作为响应,而不是 dev_token。
请记住,您仍然可以使用 import.meta.env 或 process.env 全局访问环境变量,但避免在环境全局上下文中使用它们以防止意外行为。
生产
您可以在生产环境中定义变量以更新运行时配置。所有变量必须以 NITRO_ 为前缀才能应用于运行时配置。它们将覆盖您 nitro.config.ts 文件中定义的运行时配置变量。
NITRO_API_TOKEN="123"
NUXT_API_TOKEN="123"
在运行时配置中,使用 camelCase 定义键。在环境变量中,使用 snake_case 和 大写 定义键。
{
helloWorld: "foo"
}
NITRO_HELLO_WORLD="foo"