dumi 环境变量
一、env(process.env.NODE_ENV)
process.env.NODE_ENV 由 dumi 自动注入,用于区分开发态和生产态:
| 命令 | 环境 | process.env.NODE_ENV的值 |
|---|---|---|
dumi dev |
dev | development |
dumi test |
test | production |
dumi build |
prod | production |
示例:
if (process.env.NODE_ENV === 'production') {
// test 和 prod 都会进入这里
}
二、dumi 内置环境:dev / test / prod
| 命令 | 环境 | 对应配置文件 | 说明 |
|---|---|---|---|
dumi dev |
dev |
.dumirc.ts .dumirc.dev.ts .dumirc.local.ts
|
开发环境,基础 + 阶段性 + 本地覆盖 |
dumi test |
test |
.dumirc.ts .dumirc.test.ts .dumirc.local.ts
|
测试/预发布环境,基础 + 阶段性 + 本地覆盖 |
dumi build |
prod |
.dumirc.ts .dumirc.prod.ts .dumirc.local.ts
|
正式生产环境,基础 + 阶段性 + 本地覆盖 |
三、DUMI_ENV
DUMI_ENV 用于少数特殊场景的额外配置维度,当 dev / test / prod 不够区分时使用,例如:
- 同一环境需要区分内部 / 对外文档
- 同一环境存在多套部署或发布目标
- 为特定用途准备独立配置(演示版、临时发布等)
注意:DUMI_ENV 不能设置为 dev / test / prod。
四、配置文件加载规则
1. 指定 DUMI_ENV
按以下顺序加载,越靠后优先级越高:
.dumirc.ts.dumirc.${DUMI_ENV}.ts.dumirc.${dev | test | prod}.ts.dumirc.${dev | test | prod}.${DUMI_ENV}.ts.dumirc.local.ts
后加载的配置会覆盖先加载的配置。
2. 未指定 DUMI_ENV
加载:
.dumirc.ts- 当前环境对应配置文件(
.dumirc.dev.ts/.dumirc.test.ts/.dumirc.prod.ts) .dumirc.local.ts
五、总结
-
NODE_ENV:区分 开发态 / 生产态 - 内置环境
dev / test / prod:区分 构建阶段 -
DUMI_ENV:区分 特殊业务 / 场景配置
当你发现同一构建阶段但配置不同,就考虑使用
DUMI_ENV。