怎么在Vue中配置多環(huán)境代理

怎么在Vue中配置多環(huán)境代理?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

成都創(chuàng)新互聯(lián)成立于2013年,先為華安等服務(wù)建站,華安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為華安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

解決思路:

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中改寫(xiě)

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的優(yōu)點(diǎn)

Vue具體輕量級(jí)框架、簡(jiǎn)單易學(xué)、雙向數(shù)據(jù)綁定、組件化、數(shù)據(jù)和結(jié)構(gòu)的分離、虛擬DOM、運(yùn)行速度快等優(yōu)勢(shì),Vue中頁(yè)面使用的是局部刷新,不用每次跳轉(zhuǎn)頁(yè)面都要請(qǐng)求所有數(shù)據(jù)和dom,可以大大提升訪問(wèn)速度和用戶體驗(yàn)。

關(guān)于怎么在Vue中配置多環(huán)境代理問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

新聞標(biāo)題:怎么在Vue中配置多環(huán)境代理
網(wǎng)站網(wǎng)址:http://muchs.cn/article4/ihedoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、服務(wù)器托管、動(dòng)態(tài)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司全網(wǎng)營(yíng)銷推廣、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)