.env

.env 文件用于指定构建/开发时的环境变量。
此文件应添加到您的 .gitignore 文件中,以避免将敏感信息推送到仓库。

开发、构建和生成时

Nuxt CLI 在开发模式以及运行 nuxt buildnuxt generate 时内置了 dotenv 支持。

除了任何进程环境变量外,如果您的项目根目录中有一个 .env 文件,它将在开发、构建和生成时自动加载。其中设置的任何环境变量都将在您的 nuxt.config 文件和模块中可访问。

.env
MY_ENV_VARIABLE=hello
请注意,从 .env 文件中移除变量或完全删除 .env 文件不会取消已设置的值。

自定义文件

如果您想使用不同的文件——例如,使用 .env.local.env.production——您可以在使用 Nuxt CLI 时通过传递 --dotenv 标志来实现。

终端
npx nuxt dev --dotenv .env.local

在开发模式下更新 .env 文件时,Nuxt 实例会自动重启以应用新的 process.env 值。

在您的应用代码中,应使用 运行时配置 而不是直接使用环境变量。

生产环境

在您的服务端构建完成后,您需要自行负责在运行服务端时设置环境变量。

此时,.env 文件不会被读取。如何设置环境变量因部署环境而异。

这一设计决定是为了确保在各种部署环境中保持兼容性,某些环境(如无服务器平台或 Cloudflare Workers 等边缘网络)可能没有传统的文件系统可用。

由于在生产环境中不使用 .env 文件,您必须使用托管环境提供的工具和方法显式设置环境变量。以下是一些常见方法:

  • 您可以通过终端将环境变量作为参数传递:
    $ DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
  • 您可以在 .bashrc.profile 等 shell 配置文件中设置环境变量。
  • 许多云服务提供商(如 Vercel、Netlify 和 AWS)通过其仪表板、CLI 工具或配置文件提供了设置环境变量的接口。

生产环境预览

为了本地生产环境预览,我们推荐使用 nuxt preview 命令,因为使用此命令时,.env 文件将被加载到 process.env 中以方便使用。请注意,此命令要求在包目录中安装依赖项。

或者,您可以通过终端将环境变量作为参数传递。例如,在 Linux 或 macOS 上:

终端
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs

请注意,对于纯静态站点,在项目预渲染后无法设置运行时配置。

阅读更多 Docs > Guide > Going Further > Runtime Config.
如果您希望使用构建时设置的环境变量,但不关心后续更新(或仅需在应用内部动态更新),那么 appConfig 可能是一个更好的选择。您可以在 nuxt.config 中(使用环境变量)以及项目的 ~/app.config.ts 文件中定义 appConfig
阅读更多 Docs > Guide > Directory Structure > App Config.