配置
你可以使用配置文件自定义你的 Nitro 构建器。
import { defineNitroConfig } from "nitro/config";
export default defineNitroConfig({
// Nitro 选项
})
import { defineConfig } from 'vite'
import { nitro } from 'nitro/vite'
export default defineConfig({
plugins: [
nitro()
],
nitro: {
// Nitro 选项
}
})
.nitrorc 文件。Runtime 配置
Nitro 提供了一个 runtime config API,用于在你的应用程序中暴露配置,并能够通过设置环境变量在 runtime 更新它。当你想要为不同环境(例如开发、测试、生产)暴露不同的配置值时,这很有用。例如,你可以使用它为不同环境暴露不同的 API 端点或暴露不同的功能标志。
首先,你需要在配置文件中定义 runtime config。
import { defineNitroConfig } from "nitro/config";
export default defineNitroConfig({
runtimeConfig: {
apiToken: "dev_token", // `dev_token` 是默认值
}
});
你现在可以使用 useRuntimeConfig(event) 访问 runtime config。在事件处理器和实用程序中使用 useRuntimeConfig(event),并避免在环境全局上下文中调用它。这可能导致意外行为,例如在不同请求之间共享相同的 runtime config。
import { defineHandler } from "nitro/h3";
export default defineHandler((event) => {
return useRuntimeConfig(event).apiToken; // 返回 `dev_token`
});
本地开发
最后,你可以使用环境变量更新 runtime config。你可以在开发中使用 .env 或 .env.local 文件,在生产中使用平台变量(见下文)。
在项目根目录中创建 .env 文件:
NITRO_API_TOKEN="123"
重新启动开发服务器,获取 /api/example 端点,你应该看到 123 作为响应,而不是 dev_token。
不要忘记你仍然可以使用 import.meta.env 或 process.env 全局访问环境变量,但避免在环境全局上下文中使用它们以防止意外行为。
生产环境
你可以在生产环境中定义变量来更新 runtime config。所有变量必须以 NITRO_ 为前缀才能应用于 runtime config。它们将覆盖在 nitro.config.ts 文件中定义的 runtime config 变量。
NITRO_API_TOKEN="123"
在 runtime config 中,使用 camelCase 定义键。在环境变量中,使用 snake_case 和大写定义键。
{
helloWorld: "foo"
}
NITRO_HELLO_WORLD="foo"