Vue多環(huán)境代理配置方法思路詳解
背景:
多人協(xié)作模式下,修改代理比較麻煩,而且很容易某個(gè)開發(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.開發(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)境配置不同的地址了。
總結(jié)
以上所述是小編給大家介紹的Vue多環(huán)境代理配置方法思路詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- 一文搞明白vue開發(fā)者vite多環(huán)境配置
- vue項(xiàng)目多租戶環(huán)境變量的設(shè)置
- vue項(xiàng)目多環(huán)境配置(.env)的實(shí)現(xiàn)
- vue-cli4.0多環(huán)境配置變量與模式詳解
- vue.js多頁(yè)面開發(fā)環(huán)境搭建過(guò)程
- vue-cli項(xiàng)目配置多環(huán)境的詳細(xì)操作過(guò)程
- 基于vue cli 通過(guò)命令行傳參實(shí)現(xiàn)多環(huán)境配置
- 通過(guò)vue-cli來(lái)學(xué)習(xí)修改Webpack多環(huán)境配置和發(fā)布問(wèn)題
- Vue+Vite+Axios項(xiàng)目多環(huán)境以及部署前后端跨域
相關(guān)文章
Vue項(xiàng)目之安裝引入使用vconsole方式(生產(chǎn)環(huán)境不顯示)
在Vue2開發(fā)中,引入vConsole可以為移動(dòng)端提供類似瀏覽器F12的調(diào)試工具,支持查看日志、網(wǎng)絡(luò)請(qǐng)求等功能,vConsole是一個(gè)輕量、可拓展的前端調(diào)試面板,與框架無(wú)關(guān),適用于多種前端框架,安裝方法包括npm和CDN兩種,可根據(jù)項(xiàng)目環(huán)境配置是否顯示調(diào)試面板2024-10-10
Vue CLI3中使用compass normalize的方法
這篇文章主要介紹了Vue CLI3中使用compass normalize的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
Element-plus表格數(shù)據(jù)延遲加載的實(shí)現(xiàn)方案
本文介紹了在前端展示大量數(shù)據(jù)時(shí)遇到的加載卡頓問(wèn)題,并提供了一種解決方案:延遲加載,具體做法是設(shè)置加載數(shù)量,對(duì)于數(shù)據(jù)量較大的情況,進(jìn)行分批加載數(shù)據(jù),通過(guò)類選擇器找到表格滾動(dòng)條并進(jìn)行監(jiān)聽綁定事件,感興趣的朋友跟隨小編一起看看吧2024-11-11

