webpack針對不同環(huán)境使用不用接口地址的適配問題

項(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容