Nuxt3 中文课程 《实战全栈开发简书》.

.env

一个 .env 文件用于指定构建和开发环境变量。

为了避免将私密信息推送到代码仓库中,你需要将这个文件添加到你的 .gitignore 文件中。

开发、构建和生成时

Nuxt CLI 在开发模式以及运行 nuxi buildnuxi generate 时,内置了 dotenv 的支持。

除了任何进程环境变量之外,如果你的项目根目录下有一个 .env 文件,它将会在 开发、构建和生成时 自动加载。在你的 nuxt.config 文件和模块中可以访问在这里设置的任何环境变量。

.env
MY_ENV_VARIABLE=hello
注意,从 .env 文件中移除一个变量或完全删除 .env 文件将不会取消已经设置的值。

自定义文件

如果你想使用一个不同的文件,比如 .env.local.env.production,你可以在使用 nuxi 命令时传递 --dotenv 标志来实现。

Terminal
npx nuxi dev --dotenv .env.local

在开发模式下更新 .env 文件时,Nuxt 实例会自动重启以应用新的值到 process.env 中。

生产预览

在构建完成后,当你运行服务器时,你需要负责设置环境变量。

此时,你的 .env 文件将不会被读取。具体如何设置环境变量取决于你的环境。

为了进行本地生产预览,我们建议使用 nuxi preview,因为通过这个命令,.env 文件将会被加载到 process.env 中以方便使用。请注意,这个命令需要在包目录中安装依赖。

或者你可以通过终端传递环境变量作为参数。例如,在 Linux 或 macOS 上:

Terminal
DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs

请注意,在纯静态站点中,在项目预渲染完成后无法设置运行时配置。

Read more in Docs > Guide > Going Further > Runtime Config.
如果你想要在构建时使用环境变量,但不关心后续的更新(或者只需要在你的应用内部响应式地更新它们),那么 appConfig 可能是一个更好的选择。你可以在你的 nuxt.config 中使用环境变量定义 appConfig,并在项目中的 ~/app.config.ts 文件中定义。
Read more in Docs > Guide > Directory Structure > App Config.