开发环境和线上环境

  • 开发环境:表示本地开发时的环境,便于开发人员调试。代码中可能会包含测试代码,调试工具等,这些东西没必要放到线上环境中
  • 线上环境:追求快速化、最小化。包括测试、生产等非开发环境

在 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
2
3
4
5
"scripts": {
"dev": "umi dev",
"build:test": "cross-env UMI_ENV=test umi build",
"build:online": "cross-env UMI_ENV=online umi build"
},

打包时,除了加载.umirc.tc,还会额外加载.umirc.${UMI_ENV}.ts文件。

区分本地开发和线上

1
2
const isDev = process.env.NODE_ENV === 'development';
const notDev = process.env.NODE_ENV === 'production';
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×