Vue多環(huán)境代理配置方法思路詳解
背景:
多人協(xié)作模式下,修改代理比較麻煩,而且很容易某個開發(fā)人員會修改了vue.config.js文件后提交了。
第一,很容易引起沖突。
第二,很容易出現(xiàn)代理錯誤,需要排查。而且現(xiàn)在微服務盛行,在生產(chǎn)環(huán)境下有網(wǎng)關(guān)配置,不會出錯,但是在本地調(diào)試會造成麻煩,如修改了代理地址需要同步修改代理中的地址,很麻煩也很容易出錯。
解決思路:
1.開發(fā)中定義常量js文件,例如constants.js。用戶存放各個服務需要代理的服務名。
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為服務名,可根據(jù)業(yè)務需要替換在實際的業(yè)務中就可以這么用
import {loginServer} from 'constants'
function login(params){
return axios.post(loginServer+"/login",params)
}
其中 loginServer為服務名,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':'/'
}
}
}
}
}
這么配置可以滿足需求,但是會有多人改動vue.config.js的情況,造成以上說的錯誤。
解決方案:
vue中提供了 --mode 模式,并提供了 .env.local 等文件,此文件被git忽略,且可根據(jù)當前 mode設置的值尋找環(huán)境變量配置,例如 --mode=dev ,則.env.dev.local 或.env.dev 等文件中的配置會生效,.local文件會被git忽略,因此咱們用這個,--mode設置在 package.json中,在npm run serve 中添加
script:{
"serve":"vue-cli-service serve --mode=dev"
}
在項目根目錄下jianli .env.dev.local文件,文件中添加 以下鍵值對(此文件中只接受鍵值對
)
.env.dev.local
loginServerURL =http://localhost:8080 businessServerURL = http://localhost:8081
當然可根據(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)境配置不同的地址了。
總結(jié)
以上所述是小編給大家介紹的Vue多環(huán)境代理配置方法思路詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
詳解vuejs2.0 select 動態(tài)綁定下拉框支持多選
這篇文章主要介紹了vuejs2.0 select動態(tài)綁定下拉框 ,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
基于Vue3和element-plus實現(xiàn)登錄功能(最終完整版)
這篇文章主要介紹了基于Vue3和element-plus實現(xiàn)一個完整的登錄功能,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
Vue3使用 createApp 自定義通用Dialog的方法
這篇文章主要介紹了Vue3使用 createApp 自定義通用Dialog的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01

