umi使用process配置区分打包开发环境线上环境

前言:目前使用的是umi2,官方文档不是很明确,所以折腾了下,安装process,通过它来简化项目运行、打包时候的不同环境。

目的:只需要直接通过npm run start类似命令来打包出测试环境、正式环境、a环境、b环境、c环境....,不需要手动更改代码。

使用插件:cross-env

官方传送门:https://www.npmjs.com/package/cross-env

1、安装:

npm install --save-dev cross-env

2、修改package.json

根据我们实际要求更改,例如我们想做到:npm run build:prod是打包给正式环境的配置,npm run build:test是打包给测试环境的配置,

```

"scripts": {

    "start": "cross-env APP_ENV=test umi dev",

    "start:prod": "cross-env APP_ENV=prod umi dev",

    "start:test": "cross-env APP_ENV=test umi dev",

    "build": "cross-env  APP_ENV=test umi build",

    "build:prod": "cross-env APP_ENV=prod umi build",

    "build:test": "cross-env APP_ENV=test umi build"  

},

```

 拿上面一句命令来说 "build:prod": "cross-env APP_ENV=prod umi build"

npm run build:prod

我们输入npm run build:prod时候会运行到对应的prod这一行脚本,此时会给process.env(你要用到的全局变量)添加一个key:value,APP_ENV是自定义字段key,prod是值用来区分哪个环境。

3、进行全局化

上面的这简单修改能在umi中的配置文件获取,也能给它添加对应的字段,但是我们需要在普通的xxxxxxxx.js某个文件使用时候会获取不到,这时候需要全局化配置,通过webpack的define配置。umi已经集成了在里面,所以可以更直接写define,这样就全局化配置了。

 4、开始使用

在需要用到的页面直接写判断即可,根据你个人的环境写判断配置,最后输入对应的npm run xxxxxxx,根据你个人的package.json配置写法即可。项目中我们就可以愉快的直接敲命令给出不同的运行环境包。

let str=''if(APP_ENV ==='dev2'){

  str='123'

  }else {

  str='456'}

console.log('直接打印查看process.env', process.env);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容