摘要:多環境代理配置背景多人協作模式下,修改代理比較麻煩,而且很容易某個開發人員會修改了文件后提交了。在中配置代理這么配置可以滿足需求,但是會有多人改動的情況,造成以上說的錯誤。
Vue多環境代理配置
背景: 多人協作模式下,修改代理比較麻煩,而且很容易某個開發人員會修改了vue.config.js文件后提交了。第一,很容易引起沖突。 第二,很容易出現代理錯誤,需要排查。而且現在微服務盛行,在生產環境下有網關配置,不會出錯,但是在本地調試會造成麻煩,如修改了代理地址需要同步修改代理中的地址,很麻煩也很容易出錯。
解決思路:
1.開發中定義常量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為代理規則中配置,loginServer為服務名,可根據業務需要替換 在實際的業務中就可以這么用
import {loginServer} from "constants" function login(params){ return axios.post(loginServer+"/login",params) }
其中 loginServer為服務名,login為方法名,params為參數。
在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忽略,且可根據當前 mode設置的值尋找環境變量配置,例如 --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
當然可根據不同的模式建立不同的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":"/" } } } } }
這樣就可以根據不同的環境配置不同的地址了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104884.html
摘要:實現不同服務器代理接上篇,雖然可實現多版本代理,但是每增加一種模式就需要重下新修改以及,感覺很不智能,擴展性挺差。使用時只需更改文件即可,即使增加了代理也可只增加配置文件完成代理。 vue實現不同服務器代理 接上篇,雖然可實現多版本代理,但是每增加一種模式就需要重下新修改vue.config.js以及.env.dev.local,感覺很不智能,擴展性挺差。主要實現思路: 模仿vue中....
摘要:前端項目上線的時候不可避免的會考慮到不同的運行環境需要前端請求不同服務地址的問題方案一一般的情況下可以使用環境變量進行分環境打包開發環境繼續使用代理需要編譯的環境通過設置環境變量去控制打包過程最終生成適用于不同環境的前端資源有關環境 前端項目上線的時候 , 不可避免的會考慮到不同的運行環境需要前端請求不同服務地址的問題 方案一 : 一般的情況下 , 可以使用vue-cli-servi...
摘要:前言如今可謂是一匹黑馬數已居第一位前端開發對于的使用已經越來越多,它的優點就不做介紹了本篇是我對使用過程中以及對一些社區朋友提問我的問題中做的一些總結幫助大家踩坑。隨后的重新渲染,元素組件及其所有的子節點將被視為靜態內容并跳過。 前言 vue如今可謂是一匹黑馬,github star數已居第一位!前端開發對于vue的使用已經越來越多,它的優點就不做介紹了,本篇是我對vue使用過程中以及...
摘要:本文將針對使用生態開發完成的網站,以版本為基礎兼容目標,實現全功能正常使用的全面兼容解決方案。這樣做的目的,是逐步減少全局性方法,使得語言逐步模塊化。此外,使用這個,一旦頁面不處于瀏覽器的當前標簽,就會自動停止刷新。 前言 背景情況 vue - 2.5.11 vue-cli 使用模板 webpack-simple http請求:axios Vue 官方對于 ie 瀏覽器版本兼容情...
摘要:需求上是我們只需要在開發環境配置跨域代理,所以我們可以在開發環境的配置上加上能夠代理上的環境變量即可。修改的配置將改為這里依然是采用的來做的代理配置,一些自定義配置可以移步到官網去進行參考。 寫在前面 vue-cli 3.x 的beta版本已經發布了一段時間,很早就像體驗一番一直找不到時間。這些日子剛好有空就想著依照網上的一些例子練下手,剛一上手就踩到坑了。3.x 版本對整個項目的構建...
閱讀 1938·2021-11-24 09:39
閱讀 3276·2021-09-22 14:58
閱讀 1161·2019-08-30 15:54
閱讀 3315·2019-08-29 11:33
閱讀 1787·2019-08-26 13:54
閱讀 1598·2019-08-26 13:35
閱讀 2468·2019-08-23 18:14
閱讀 762·2019-08-23 17:04