Vue多环境代理配置
栏目: JavaScript · 发布时间: 7年前
内容简介:背景: 多人协作模式下,修改代理比较麻烦,而且很容易某个开发人员会修改了vue.config.js文件后提交了。第一,很容易引起冲突。 第二,很容易出现代理错误,需要排查。而且现在微服务盛行,在生产环境下有网关配置,不会出错,但是在本地调试会造成麻烦,如修改了代理地址需要同步修改代理中的地址,很麻烦也很容易出错。解决思路:其中 loginServer为服务名,login为方法名,params为参数。
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':'/'
}
}
}
}
}
这样就可以根据不同的环境配置不同的地址了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
生物信息学算法导论
N.C.琼斯 / 第1版 (2007年7月1日) / 2007-7 / 45.0
这是一本关于生物信息学算法和计算思想的导论性教科书,原著由国际上的权威学者撰写,经国内知名专家精心翻译为中文,系统介绍推动生物信息学不断进步的算法原理。全书强调的是算法中思想的运用,而不是对表面上并不相关的各类问题进行简单的堆砌。 体现了以下特色: 阐述生物学中的相关问题,涉及对问题的模型化处理并提供一种或多种解决方案: 简要介绍生物信息学领域领军人物; 饶有趣味的小插图使得概念更加具体和形象,方......一起来看看 《生物信息学算法导论》 这本书的介绍吧!