.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。
在您的应用程序代码中,您应该使用运行时配置而不是纯环境变量。
生产环境
在构建服务器之后,您有责任在运行服务器时设置环境变量。
此时将不会读取 .env 文件。每种环境的做法都不同。
这个设计决策是为了确保在各种部署环境中的兼容性,其中一些环境可能没有可用的传统文件系统,例如无服务器平台或 Cloudflare Workers 等边缘网络。
由于在生产环境中不使用 .env 文件,您必须使用托管环境提供的工具和方法显式设置环境变量。以下是一些常见方法:
- 您可以使用终端传递环境变量作为参数:
$ DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs - 您可以在 shell 配置文件(如
.bashrc或.profile)中设置环境变量。 - 许多云服务提供商(如 Vercel、Netlify 和 AWS)提供通过其仪表板、CLI 工具或配置文件设置环境变量的界面。
runtimeConfig 不会获取生产环境中不以 NUXT_ 开头的环境变量。生产环境预览
对于本地生产预览的目的,我们建议使用 nuxt preview``,因为使用此命令,.env文件将被加载到process.env` 以方便使用。请注意,此命令要求在包目录中安装依赖项。
或者,您可以使用终端传递环境变量作为参数。例如,在 Linux 或 macOS 上:
Terminal
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs
请注意,对于纯静态站点,在预渲染项目后无法设置运行时配置。