前端工程化中的自动化角度(任何简单机械的重复劳动都应该让机械去完成)思考,发现了目前应用存在的缺陷——测试、正式环境都是手动去切换的,这样子万一忘记了,就很容易出现问题。
console.log(process.env.NODE_ENV)
打印可以看到 roadhog 针对特定环境的环境变量。开发环境下是 development,生产环境下是 production。
但这不能满足我们想要区分测试、正式环境,需增加环境变量。
添加环境变量
在.webpackrc.js中的define里添加:
define: { //定义环境变量中的值
"process.env": {
API_ENV: process.env.API_ENV,
}
设置环境变量的值(针对 Windows)
接下来启动本地服务或者打包的时候,设置对应的环境变量。
"scripts": {
"start": "set API_ENV=t &&roadhog server",
"startP": "set API_ENV=p &&roadhog server",
"buildT": "set API_ENV=t &&roadhog build",
"buildP": "set API_ENV=p &&roadhog build",
},
然后就可以通过 process.env.API_ENV 去获取到环境变量的值,然后切换到对应的测试、正式环境了。
设置环境变量的值(跨平台——cross-env)
![](https://img.haomeiwen.com/i9070909/fac77fb0bb132b52.png)
![](https://img.haomeiwen.com/i9070909/07fbcd1e1be0bbd7.png)
可以看到,如果 roadhog 的文档是在 npm(→)上查看,而不是在 git (→)上查看的话,会少一块内容——跨平台设置环境变量的方法。
cross-env 是运行跨平台设置和使用环境变量的脚本。
可以使用单个命令,而不必担心为平台正确设置或使用环境变量。
"scripts": {
"start": "cross-env API_ENV=t roadhog server",
"startP": "cross-env API_ENV=p roadhog server",
"buildT": "cross-env API_ENV=t roadhog build",
"buildP": "cross-env API_ENV=p roadhog build",
},
网友评论