.env
.env 文件指定了构建/开发时的环境变量。
此文件应添加到您的 .gitignore 文件中,以避免将秘密信息推送到您的代码库中。
开发、构建和生成时
Nuxt CLI 在开发模式以及运行 nuxt build 和 nuxt generate 时内置了 dotenv 支持。
除了任何进程环境变量之外,如果您的项目根目录中有一个 .env 文件,它将在开发、构建和生成时自动加载。设置在其中的任何环境变量都可以在您的 nuxt.config 文件和模块中访问。
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 -
您可以在 shell 配置文件中设置环境变量,如
.bashrc或.profile。 -
许多云服务提供商,如 Vercel、Netlify 和 AWS,提供通过其仪表板、CLI 工具或配置文件设置环境变量的接口。
生产预览
为了本地生产预览目的,我们建议使用 nuxt preview,因为使用此命令时,.env 文件将被加载到 process.env 中以方便使用。请注意,此命令需要在包目录中安装依赖项。
或者,您可以使用终端将环境变量作为参数传递。例如,在 Linux 或 macOS 上:
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
请注意,对于纯静态站点,在项目预渲染后无法设置运行时配置。
另请参阅 guide > going-further > runtime-config如果您想使用在构建时设置的环境变量,但不关心后续更新(或只需要在应用程序内反应性地更新它们),那么 appConfig 可能是更好的选择。您可以在 nuxt.config 中(使用环境变量)以及项目中的 ~/app.config.ts 文件中定义 appConfig。