开发环境和线上环境
- 开发环境:表示本地开发时的环境,便于开发人员调试。代码中可能会包含测试代码,调试工具等,这些东西没必要放到线上环境中
- 线上环境:追求快速化、最小化。包括测试、生产等非开发环境
在 node.js 中约定了一个环境变量 NODE_ENV
,用于环境区分。
未定义任何环境变量时,production
表示线上环境,development
表示开发环境。
线上环境:线上环境不等于生产环境。在未定义其他环境时,线上环境表示生产环境;定义了其他环境(比如测试环境)时,线上环境表示除开发环境的其他环境。
一般我们还会有一个测试环境,通常情况下都是把线上接口改为测试接口,但是这样容易出错。
为了避免手动修改接口,我们可以定义一个测试环境test
。
umi 环境变量配置
UMI_ENV
当指定 UMI_ENV 时,会额外加载指定值的配置文件。参考: https://umijs.org/docs/guides/env-variables#umi_env
多了测试环境,这时候的production
可能会包含test
,所以我们再定义一个 online,用online
表示生产。
:::info
注意:umi4.x 版本里,自定义变量时不能用 prod 表示生产环境,所以这里使用 online .
:::
1 | "scripts": { |
打包时,除了加载.umirc.tc
,还会额外加载.umirc.${UMI_ENV}.ts
文件。
区分本地开发和线上
1 | const isDev = process.env.NODE_ENV === 'development'; |