Vue多環境代理配置方法思路詳解

多人協作模式下,修改代理比較麻煩,而且很容易某個開發人員會修改了vue.config.js文件後提交了。接下來通過本文給大家分享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':'/'
       }
     }
    }
  }
}

這樣就可以根據不同的環境配置不同的地址了。

總結

以上所述是小編給大家介紹的Vue多環境代理配置方法思路詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章