Open
Description
Requirement
一、环境变量策略
1.1 如何定义环境变量?
项目根目录“环境变量声明文件”定义:
.env
默认的配文件.env.development
开发环境(npm run dev
)声明的变量,可以覆盖.env
文件声明的同名变量。.env.production
生产环境(npm run start
)声明的变量,可以覆盖.env
文件声明的同名变量。.env.local
本地默认变量(可以视为运行应用的服务器环境),可以覆盖.env
文件声明的同名变量,并且不应该提交到git仓库。.env.*.local
(.env.development.local
、.env.production.local
)
本地环境变量(可以视为运行应用的服务器环境),优先级最高,一般配置环境机器上环境相关的配置。
server.properties
1.2 怎么使用?
node环境(服务端或者编译阶段)可以使用(即环境变量都被挂载到process.env
对象上)。
process.env.环境变量名
1.3 优先级:
- 默认的配置文件(
.env
,.env.local
)优先级最低;
.env.local
可以视为默认的本地文件。 - 接下来就是应用配置文件(
.env.development
,.env.production
); - 服务器非默认的本地文件优先级最高。
- 这样“默认的配置变量”,“本地配置变量”的和"开发配置变量”优先级策略有点类似CSS优先级规则。
- 可以简单的记忆:文件名字越长优先级越高。
1.4 环境变量变更
环境变量配置文件都是冷配置,发生变更都需要重启应用。