.env
.env 文件指定你的构建/开发时环境变量。
此文件应添加到你的
.gitignore
文件中,以避免将密钥推送到你的仓库。开发、构建和生成时
Nuxt CLI 在开发模式以及运行 nuxt build
和 nuxt generate
时内置了对 dotenv 的支持。
除了任何进程环境变量之外,如果你的项目根目录中存在 .env
文件,它将在开发、构建和生成时自动加载。任何在其中设置的环境变量都可以在你的 nuxt.config
文件和模块中访问。
.env
MY_ENV_VARIABLE=hello
请注意,从
.env
中移除一个变量或完全删除 .env
文件不会取消已经设置的值。自定义文件
如果你想使用不同的文件——例如使用 .env.local
或 .env.production
——可以在使用 Nuxt CLI 时通过传递 --dotenv
标志来实现。
Terminal
npx nuxt dev --dotenv .env.local
在开发模式下更新 .env
时,Nuxt 实例会自动重启以将新值应用到 process.env
。
在应用代码中,你应使用 Runtime Config 而不是直接使用普通的环境变量。
生产环境
在服务器构建完成后,在运行服务器时由你负责设置环境变量。
此时不会读取你的 .env
文件。如何设置取决于你所使用的环境。
做出此设计决策是为了确保兼容各种部署环境,其中某些环境可能没有传统的文件系统可用,例如无服务器平台或像 Cloudflare Workers 这样的边缘网络。
既然 .env
文件在生产环境中不被使用,你必须使用托管环境提供的工具和方法显式设置环境变量。下面是一些常见的方法:
- 你可以通过终端将环境变量作为参数传递:
$ DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
- 你可以在类似
.bashrc
或.profile
的 shell 配置文件中设置环境变量。 - 许多云服务提供商(例如 Vercel、Netlify 和 AWS)提供通过其控制面板、CLI 工具或配置文件设置环境变量的界面。
runtimeConfig
不会在生产环境中拾取不以 NUXT_
开头的环境变量 (https://nuxt.com/docs/4.x/guide/going-further/runtime-config#environment-variables).生产预览
用于本地生产预览时,我们推荐使用 nuxt preview
,因为使用该命令时,为方便起见会将 .env
文件加载到 process.env
中。请注意,该命令要求在包目录中已安装依赖。
或者你也可以通过终端将环境变量作为参数传递。例如,在 Linux 或 macOS 上:
Terminal
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
请注意,对于纯静态站点,项目预渲染后无法再设置运行时配置。