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 相关文章推荐
js判断数据类型如判断是否为数组是否为字符串等等
Jan 15 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
Nov 16 Javascript
JQuery中基础过滤选择器用法实例分析
May 18 Javascript
jquery模拟进度条实现方法
Aug 03 Javascript
Jquery操作cookie记住用户名
Mar 29 Javascript
JS简单生成随机数(随机密码)的方法
May 11 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
JS基于开关思想实现的数组去重功能【案例】
Feb 18 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
Sep 25 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 Javascript
Vue 实现可视化拖拽页面编辑器
Feb 01 Vue.js
字节飞书面试promise.all实现示例
Jun 16 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+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
PHP __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
event.srcElement+表格应用
2006/08/29 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
JS验证不重复验证码
2017/02/10 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
浅析Angular19 自定义表单控件
2018/01/31 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
Python log模块logging记录打印用法解析
2020/01/20 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
普通简短的个人自我评价
2014/02/15 职场文书
成绩单家长评语大全
2014/04/16 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
酒会开场白大全
2015/06/01 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
合作意向书怎么写
2019/06/24 职场文书