摘要:多環(huán)境代理配置背景多人協(xié)作模式下,修改代理比較麻煩,而且很容易某個(gè)開(kāi)發(fā)人員會(huì)修改了文件后提交了。在中配置代理這么配置可以滿足需求,但是會(huì)有多人改動(dòng)的情況,造成以上說(shuō)的錯(cuò)誤。
Vue多環(huán)境代理配置
背景: 多人協(xié)作模式下,修改代理比較麻煩,而且很容易某個(gè)開(kāi)發(fā)人員會(huì)修改了vue.config.js文件后提交了。第一,很容易引起沖突。 第二,很容易出現(xiàn)代理錯(cuò)誤,需要排查。而且現(xiàn)在微服務(wù)盛行,在生產(chǎn)環(huán)境下有網(wǎng)關(guān)配置,不會(huì)出錯(cuò),但是在本地調(diào)試會(huì)造成麻煩,如修改了代理地址需要同步修改代理中的地址,很麻煩也很容易出錯(cuò)。
解決思路:
1.開(kāi)發(fā)中定義常量js文件,例如constants.js。用戶存放各個(gè)服務(wù)需要代理的服務(wù)名。
let api = "" let loginServer = "/loginServer" let businessServer = "/businessServe" if(process.env.NODE_ENV == "development"){ api = "/api" loginServer = api + LoginServer businessServer = api + businessServer } export { loginServer, businessServer }
其中api為代理規(guī)則中配置,loginServer為服務(wù)名,可根據(jù)業(yè)務(wù)需要替換 在實(shí)際的業(yè)務(wù)中就可以這么用
import {loginServer} from "constants" function login(params){ return axios.post(loginServer+"/login",params) }
其中 loginServer為服務(wù)名,login為方法名,params為參數(shù)。
在vue.config.js中配置代理
modules.exports = { publicPath:"/" , devServer: { port: 8080, proxy:{ "/api/loginServer":{ target:"http://localhost:8080", ws:true, changeOrigin:true, pathRewrite:{ "^/api":"/" } }, "/api/businessServer":{ target:"http://localhost:8081", ws:true, changeOrigin:true, pathRewrite:{ "^/api":"/" } } } } }
這么配置可以滿足需求,但是會(huì)有多人改動(dòng)vue.config.js的情況,造成以上說(shuō)的錯(cuò)誤。
解決方案:
vue中提供了 --mode 模式,并提供了 .env.local 等文件,此文件被git忽略,且可根據(jù)當(dāng)前 mode設(shè)置的值尋找環(huán)境變量配置,例如 --mode=dev ,則.env.dev.local 或.env.dev 等文件中的配置會(huì)生效,.local文件會(huì)被git忽略,因此咱們用這個(gè),--mode設(shè)置在 package.json中,在npm run serve 中添加
script:{ "serve":"vue-cli-service serve --mode=dev" }
在項(xiàng)目根目錄下jianli .env.dev.local文件,文件中添加 以下鍵值對(duì)(此文件中只接受鍵值對(duì)
)
.env.dev.local
loginServerURL =http://localhost:8080 businessServerURL = http://localhost:8081
當(dāng)然可根據(jù)不同的模式建立不同的local文件
.env.prod.local等
vue.config.js中改寫
modules.exports = { publicPath:"/" , devServer: { port: 8080, proxy:{ "/api/loginServer":{ target:process.env.loginServerURL?process.env.loginServerURL:"httpL//localhost:8080", ws:true, changeOrigin:true, pathRewrite:{ "^/api":"/" } }, "/api/businessServer":{ target:process.env.loginServerURL?process.env.businessServerURL :"http://localhost:8081", ws:true, changeOrigin:true, pathRewrite:{ "^/api":"/" } } } } }
這樣就可以根據(jù)不同的環(huán)境配置不同的地址了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104884.html
摘要:實(shí)現(xiàn)不同服務(wù)器代理接上篇,雖然可實(shí)現(xiàn)多版本代理,但是每增加一種模式就需要重下新修改以及,感覺(jué)很不智能,擴(kuò)展性挺差。使用時(shí)只需更改文件即可,即使增加了代理也可只增加配置文件完成代理。 vue實(shí)現(xiàn)不同服務(wù)器代理 接上篇,雖然可實(shí)現(xiàn)多版本代理,但是每增加一種模式就需要重下新修改vue.config.js以及.env.dev.local,感覺(jué)很不智能,擴(kuò)展性挺差。主要實(shí)現(xiàn)思路: 模仿vue中....
摘要:前端項(xiàng)目上線的時(shí)候不可避免的會(huì)考慮到不同的運(yùn)行環(huán)境需要前端請(qǐng)求不同服務(wù)地址的問(wèn)題方案一一般的情況下可以使用環(huán)境變量進(jìn)行分環(huán)境打包開(kāi)發(fā)環(huán)境繼續(xù)使用代理需要編譯的環(huán)境通過(guò)設(shè)置環(huán)境變量去控制打包過(guò)程最終生成適用于不同環(huán)境的前端資源有關(guān)環(huán)境 前端項(xiàng)目上線的時(shí)候 , 不可避免的會(huì)考慮到不同的運(yùn)行環(huán)境需要前端請(qǐng)求不同服務(wù)地址的問(wèn)題 方案一 : 一般的情況下 , 可以使用vue-cli-servi...
摘要:前言如今可謂是一匹黑馬數(shù)已居第一位前端開(kāi)發(fā)對(duì)于的使用已經(jīng)越來(lái)越多,它的優(yōu)點(diǎn)就不做介紹了本篇是我對(duì)使用過(guò)程中以及對(duì)一些社區(qū)朋友提問(wèn)我的問(wèn)題中做的一些總結(jié)幫助大家踩坑。隨后的重新渲染,元素組件及其所有的子節(jié)點(diǎn)將被視為靜態(tài)內(nèi)容并跳過(guò)。 前言 vue如今可謂是一匹黑馬,github star數(shù)已居第一位!前端開(kāi)發(fā)對(duì)于vue的使用已經(jīng)越來(lái)越多,它的優(yōu)點(diǎn)就不做介紹了,本篇是我對(duì)vue使用過(guò)程中以及...
摘要:本文將針對(duì)使用生態(tài)開(kāi)發(fā)完成的網(wǎng)站,以版本為基礎(chǔ)兼容目標(biāo),實(shí)現(xiàn)全功能正常使用的全面兼容解決方案。這樣做的目的,是逐步減少全局性方法,使得語(yǔ)言逐步模塊化。此外,使用這個(gè),一旦頁(yè)面不處于瀏覽器的當(dāng)前標(biāo)簽,就會(huì)自動(dòng)停止刷新。 前言 背景情況 vue - 2.5.11 vue-cli 使用模板 webpack-simple http請(qǐng)求:axios Vue 官方對(duì)于 ie 瀏覽器版本兼容情...
摘要:需求上是我們只需要在開(kāi)發(fā)環(huán)境配置跨域代理,所以我們可以在開(kāi)發(fā)環(huán)境的配置上加上能夠代理上的環(huán)境變量即可。修改的配置將改為這里依然是采用的來(lái)做的代理配置,一些自定義配置可以移步到官網(wǎng)去進(jìn)行參考。 寫在前面 vue-cli 3.x 的beta版本已經(jīng)發(fā)布了一段時(shí)間,很早就像體驗(yàn)一番一直找不到時(shí)間。這些日子剛好有空就想著依照網(wǎng)上的一些例子練下手,剛一上手就踩到坑了。3.x 版本對(duì)整個(gè)項(xiàng)目的構(gòu)建...
閱讀 1948·2021-11-24 09:39
閱讀 3327·2021-09-22 14:58
閱讀 1181·2019-08-30 15:54
閱讀 3332·2019-08-29 11:33
閱讀 1801·2019-08-26 13:54
閱讀 1612·2019-08-26 13:35
閱讀 2482·2019-08-23 18:14
閱讀 778·2019-08-23 17:04