前言最近一直在做一些监控的事情,需要根据不同的环境,报到不同的地址。中间遇到了一些问题,在这里简单总结分享一下。关于process.env如果你对process.env相关的概念不熟悉,请移步:关于Node环境变量process.env的那些事儿,这篇文章总结的比较好。当webpack正在构建时,您可以为process.env赋值://将此作为第一件事,以便任何读取它的代码都知道正确的env.process.env.BABEL_ENV='development';process.env.NODE_ENV='development'';//将此作为第一件事,以便任何读取它的代码都知道正确的env.process.env.BABEL_ENV='production';process.env.NODE_ENV='production';process对象是一个全局(全局变量),提供有关控制当前Node.js进程的信息。作为一个对象,它始终对Node.js应用程序可用,因此无需使用require()。如果需要根据不同的部署环境做一些区分,例如:if(process.env.env==="test"){BASE_API_1='xxx}elseif(process.env.env==="uat"){BASE_API_1='xxx}elseif(process.env.env==="staging"){BASE_API_1='xxx}elseif(process.env.env==="live"){BASE_API_1='xxx'}else{BASE_API_1='xxx';}比如你使用jenkins,在构建的时候会自动给环境变量加上一个env属性,就是上面看到的env.env。不同的环境会有不同的值,比如uat、staging、live;在本地构建的时候,是获取不到这个值的,因为没有这个环境。但是也可以手动赋值,比如给env.env赋值为'test',可以在终端执行:env=testyarnstart随便打印:console.log(process.env.env);)希望对你有所启发,谢谢。
