項(xiàng)目中使用了create-react-app搭建的項(xiàng)目,package.json中用的react-app-rewired方式,由于webpack沒有被釋放,不能在webpack的配置文件直接配置適配,所以針對build 的dev,test, production環(huán)境取不同的接口地址,就不是很方便。(create-react-app默認(rèn)情況下,webpack的配置是對dev ,production環(huán)境,并沒有test。)
請求接口用的是axios,針對不同的環(huán)境設(shè)置不用baseurl即可, baseurl.js如下:
let BASE_URL = '';
if(process.env.REACT_APP_ENV === 'development') {
? ? BASE_URL = 'http://開發(fā)環(huán)境/'?
}
else if(process.env.REACT_APP_ENV === 'test'){
? ? BASE_URL = 'http://測試環(huán)境/'?
}
else if(process.env.REACT_APP_ENV === 'production'){
? ? BASE_URL = 'http://生產(chǎn)環(huán)境/'?
}
export default BASE_URL
剩余的問題就是如何得到process.env.REACT_APP_ENV 的值。方法是,不同的環(huán)境使用不同的build方式》
dev 環(huán)境build 的話用npm run build:dev
prodution 環(huán)境build 的話 用npm run build:prodution
test? 環(huán)境build 的話 用npm run build:test
package.json文件簡略如下:
"start":?"dotenv?-e?.env.development?react-app-rewired?start?",
?"test":?"react-app-rewired?test",
"eject":?"react-scripts?eject",
"build:dev":?"dotenv?-e?.env.dev?react-app-rewired?build",
"build:production":?"dotenv?-e?.env.production?react-app-rewired?build",
"build:test":?"dotenv?-e?.env.test?react-app-rewired?build"
使用了dotenv-cli?與??env文件
dotenv-cli包的作用是可以使用.env文件指定的變量,然后process.env對象就有該變量的值了。
(dotenv使用方式http://npm.taobao.org/package/dotenv-cli)
env文件可以按照如下方式:
例如在.env.development文件中:
????????????????REACT_APP_ENV=development

網(wǎng)上的有用資料1??https://blog.csdn.net/songshu92/article/details/99567343#%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE
2?webpack vue-cli2 區(qū)分測試環(huán)境和線上環(huán)境?http://www.itdecent.cn/p/30d30d2835b2