了解 process.env.NODE_ENV
- process:nodeJs运行时的全局进程
- env: process上的一个代表环境变量的属性,所有设置的环境变量都可以通过该属性读取
- NODE_ENV是一个用户自定义的变量,在webpack中它的用途是判断生产环境或开发环境。
类型1:区分本地开发环境和部署后的环境(测试、生产)
- 设置环境变量
- 在package.json文件的scripts脚本命令中添加NODE_ENV环境变量,
- 一般dev为本地开发启动项目的命令,统一设置为NODE_ENV=development,
- build命令为打包部署时使用,统一设置为NODE_ENV=production
-
获取环境变量
console.log('env :', process.env.NODE_ENV);
这样在本地开发时获取到的NODE_ENV值就是development,部署以后,获取到的就是production
-
使用场景
有时移动端h5需要接入第三方的APP,通过APP扫码进入,h5的登录用户信息需要和第三方对接,一般这种本地开发时是无法进行这个流程的,为了方便测试,可以根据环境设置本地开发时不走对接流程
类型2:区分不同环境的通用配置(服务器地址等配置)
一般测试环境和生产环境会有一些不一样的配置,如服务器地址等,那就需要根据不同环境设置不同的配置
- config文件夹下添加属于不同环境的配置文件(不同框架可能名称不同)
- default.json5:默认通用配置
- default-dev.json:测试环境专用配置,-dev对应package.json中的dev命令
- default-prod.json:生产环境专用配置,-prod对应package.json中的prod命令
2.如果需要,也可以在scripts脚本中声明不同环境的变量(PROJECT_ENV)这里和NODE_ENV是不一样的,根据最后执行的是哪个环境来设置
3. 获取配置
const CONFIG = process.env.CONFIG
console.log('CONFIG :', CONFIG);
启动或者打包时,使用的dev命令,则此处获取到的配置内容为 default.json5 + default-dev.json 启动或者打包时,使用的prod命令,则此处获取到的配置内容为 default.json5 + default-prod.json