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多环境代理配置方法思路详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容