.env
.env 文件指定您的构建/开发时环境变量。
此文件应添加到您的
.gitignore
文件中,以避免将秘密推送到您的仓库。开发、构建和生成时
Nuxt CLI 内置dotenv在开发模式以及运行 nuxt build
和 nuxt generate
时提供支持。
除了任何进程环境变量之外,如果您在项目根目录中有一个 .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
- 您可以在 shell 配置文件中设置环境变量,例如
.bashrc
或.profile
。 - 许多云服务提供商,例如 Vercel、Netlify 和 AWS,通过其仪表板、CLI 工具或配置文件提供设置环境变量的接口。
runtimeConfig
不会在生产环境中获取不以 NUXT_
开头的环境变量 (https://nuxtjs.org.cn/docs/4.x/guide/going-further/runtime-config#environment-variables).生产环境预览
为了本地生产预览目的,我们建议使用 nuxt preview
,因为使用此命令,.env
文件将被加载到 process.env
中,以方便使用。请注意,此命令要求在包目录中安装依赖项。
或者您可以使用终端将环境变量作为参数传递。例如,在 Linux 或 macOS 上
终端
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
请注意,对于纯静态站点,在项目预渲染后无法设置运行时配置。