# 环境变量

你可以在你的项目根目录中放置下列文件来指定环境变量:

.env                # 在所有的环境中被载入
.env.local          # 在所有的环境中被载入,但会被 git 忽略
.env.[mode]         # 只在指定的模式中被载入
.env.[mode].local   # 只在指定的模式中被载入,但会被 git 忽略

一个环境文件只包含环境变量的“键=值”对:

FOO=bar VUE_APP_NOT_SECRET_CODE=some_value

警告

不要在你的应用程序中存储任何机密信息(例如私有 API 密钥)!

环境变量会随着构建打包嵌入到输出代码,意味着任何人都有机会能够看到它。

请注意,只有 NODEENVBASE_URL 和 以VUE_APP开头的变量将通过 webpack.DefinePlugin 静态地 嵌入到客户端侧的代码中。这是为了避免意外公开机器上可能具有相同名称的私钥。

想要了解解析环境文件规则的细节,请参考 dotenv (opens new window)。我们也使用 dotenv-expand (opens new window) 来实现变量扩展 (Vue CLI 3.5+ 支持)。例如:

FOO=foo BAR=bar

CONCAT=$FOO$BAR # CONCAT=foobar

被载入的变量将会对 vue-cli-service 的所有命令、插件和依赖可用。

环境文件加载优先级

为一个特定模式准备的环境文件 (例如 .env.production) 将会比一般的环境文件 (例如 .env) 拥有更高的优先级。

此外,Vue CLI 启动时已经存在的环境变量拥有最高优先级,并不会被 .env 文件覆写。

.env 环境文件是通过运行 vue-cli-service 命令载入的,因 此环境文件发生变化,你需要重启服务。

详细内容请参考 模式 (opens new window)