.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.bashrc 或 .profile。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
请注意,对于纯静态站点,在项目预渲染后无法设置运行时配置。