前端QA、RC、Release环境的思考

缘起

通常我们至少会有三个环境,QA环境,RC环境,Release环境。如果再加上开发环境跟灰度环境的话就有五个。那这么多环境都在跑同一个工程,怎么才能保证各个环境可以随时切换是设计初期就要考虑到的重要环节。

各个环境的特点

QA环境(QUALITY ASSURANCE):测试环境,开发人员提交给QA验收的版本,BUG数未知。代码可能还会有多次改动。
RC环境(Release Candidate):预发布环境,顾名思义,发布前的最后一个版本,一般代码不会再有改动。
Release环境:生产环境,正式给用户使用的了。

资源文件的管理

一般情况下js、css、image资源文件会有两个版本,开发版本以及正式版本。
开发环境:使用工程根目录/public中的资源文件源代码,方便调试。
QA环境:QA环境发布的时候会执行Gulp打包脚本,将/public中的源文件打包至/build。QA环境使用/build目录的资源文件。
RC环境:RC环境比QA环境多了一个步骤,将/build中的文件同步至CDN。RC环境使用CDN的资源文件。
Release环境:与RC一致。

通过node-config管理配置文件

https://github.com/lorenwest/node-config

如果想在各个环境做一些定制化的东西,比如我想在Release环境报错的时候把log打出来,或者可以发报警邮件,node-config很好的满足了这个需求。
举个栗子,默认情况下我想绑定3333端口,qa环境我想绑定3344端口。
default.json

1
2
3
{
"port":3333
}

qa.json

1
2
3
{
"port":3344
}

剩下的就只需要在启动的时候设置相应的NODE_ENV就会自动读取了。

1
export NODE_ENV=qa

转载、引用请注明文章出处。