Vue多环境代理配置方法思路详解


Posted in Javascript onJune 21, 2019

背景:

多人协作模式下,修改代理比较麻烦,而且很容易某个开发人员会修改了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多环境代理配置方法思路详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
AJAX的跨域与JSONP(为文章自动添加短址的功能)
Jan 17 Javascript
Jquery Change与bind事件代码
Sep 29 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
css配合jquery美化 select
Nov 29 Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 Javascript
JS日期格式化之javascript Date format
Oct 01 Javascript
JavaScript来实现打开链接页面的简单实例
Jun 02 Javascript
jQuery弹出遮罩层效果完整示例
Sep 13 Javascript
使用开源工具制作网页验证码的方法
Oct 17 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
基于JS开发微信网页录音功能的实例代码
Apr 30 Javascript
微信小程序实现卡片层叠滑动效果
Jun 21 #Javascript
使用express来代理服务的方法
Jun 21 #Javascript
react+redux仿微信聊天界面
Jun 21 #Javascript
基于jQuery的时间戳与日期间的转化
Jun 21 #jQuery
jQuery事件委托代码实践详解
Jun 21 #jQuery
Vue.js中的extend绑定节点并显示的方法
Jun 20 #Javascript
微信小程序动态显示项目倒计时
Jun 20 #Javascript
You might like
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
语义化 H1 标签
2008/01/14 Javascript
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
用python登录Dr.com思路以及代码分享
2014/06/25 Python
Python变量作用范围实例分析
2015/07/07 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
护理学毕业生求职信
2013/11/14 职场文书
库房主管岗位职责
2013/12/31 职场文书
工程技术员岗位职责
2014/03/02 职场文书
大学生党性分析材料
2014/12/19 职场文书
幼师自荐信范文
2015/03/06 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
2015年政教主任工作总结
2015/07/23 职场文书