dumi 环境变量

20 阅读1分钟

一、env(process.env.NODE_ENV)

process.env.NODE_ENV 由 dumi 自动注入,用于区分开发态和生产态:

命令环境process.env.NODE_ENV的值
dumi devdevdevelopment
dumi testtestproduction
dumi buildprodproduction

示例:

if (process.env.NODE_ENV === 'production') {
  // test 和 prod 都会进入这里
}

二、dumi 内置环境:dev / test / prod

命令环境对应配置文件说明
dumi devdev.dumirc.ts .dumirc.dev.ts .dumirc.local.ts开发环境,基础 + 阶段性 + 本地覆盖
dumi testtest.dumirc.ts .dumirc.test.ts .dumirc.local.ts测试/预发布环境,基础 + 阶段性 + 本地覆盖
dumi buildprod.dumirc.ts .dumirc.prod.ts .dumirc.local.ts正式生产环境,基础 + 阶段性 + 本地覆盖

三、DUMI_ENV

DUMI_ENV 用于少数特殊场景的额外配置维度,当 dev / test / prod 不够区分时使用,例如:

  • 同一环境需要区分内部 / 对外文档
  • 同一环境存在多套部署或发布目标
  • 为特定用途准备独立配置(演示版、临时发布等)

注意DUMI_ENV 不能设置为 dev / test / prod

四、配置文件加载规则

1. 指定 DUMI_ENV

按以下顺序加载,越靠后优先级越高:

  1. .dumirc.ts
  2. .dumirc.${DUMI_ENV}.ts
  3. .dumirc.${dev | test | prod}.ts
  4. .dumirc.${dev | test | prod}.${DUMI_ENV}.ts
  5. .dumirc.local.ts

后加载的配置会覆盖先加载的配置。

2. 未指定 DUMI_ENV

加载:

  1. .dumirc.ts
  2. 当前环境对应配置文件(.dumirc.dev.ts / .dumirc.test.ts / .dumirc.prod.ts
  3. .dumirc.local.ts

五、总结

  • NODE_ENV:区分 开发态 / 生产态
  • 内置环境 dev / test / prod:区分 构建阶段
  • DUMI_ENV:区分 特殊业务 / 场景配置

当你发现同一构建阶段但配置不同,就考虑使用 DUMI_ENV