vite+vue3构建前端和多个后端服务器联调

vite+vue3构建前端多服务器后台调试

有时我们需要和多个后端和测试环境进行联调,常用的方法是,和谁联调就修改proxy代理接口,这样每次都要修改IP地址,开发效率较低。

该方法适合与多个后端本地和测试服务器联调,后端采用微服务,具体实现方法如下:

1. vite.config.ts

// vite.config.ts
import proxyTable from './proxyTable.js'

...

export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
  const env = loadEnv(mode, process.cwd());
  // 多端代理配置,去proxyTable.js里面配置个人、测试、准生产服务器
  // 默认main,若要使用其他端只需将URL里面的main替换成所需的服务器即可
  const newProxyTable = {}
  for (const key in proxyTable) {
    proxyTable[key].forEach((item) => {
      const row = {
        target: item.url,
        changeOrigin: true,
        rewrite: {}
      }
      row.rewrite = path => path.replace(new RegExp('' + `^/${key}${env.VITE_APP_BASE_API}`), '')
      newProxyTable[`/${key}${env.VITE_APP_BASE_API}/${item.base}`] = row
    })
  }
    // VITE_APP_BASE_API 为api前缀,可以设置也可以不设置,按需即可

    return {
            // 本地反向代理解决浏览器跨域限制
    	server: {
        host: '0.0.0.0',
        port: 3060,
        open: 'main', // 浏览器默认打开main准生产服务器页面调试
        proxy: newProxyTable
    	},
    ...
    }

2. proxyTable.js 在vite.config.ts平级新建文件

// proxyTable.js

export default proxyTable = {
  // 准生产服务器
  main: [
    {
      base: "auth",  // 用户
      url: "http://xx.xxx.xx.xx:8989/"
    },
    {
      base: "api",  // api微服务
      url: "http://xx.xxx.xx.xx:8989/"
    }
  ],
  // 测试服务器
  test: [
    {
      base: "auth",  // 用户
      url: "http://xx.xxx.xx.xx:8989/"
    },
    {
      base: "api",  // api微服务
      url: "http://xx.xxx.xx.xx:8989/"
    }
  ]
}

3.修改request.ts

// request.ts

let basePath = ''
// 默认连接地址,只在调试时有用
if (import.meta.env.VITE_NODE_ENV === 'development') {
  basePath = urlUtil.getEnvTypeByUrl() || 'main'
}
const service = axios.create({
  baseURL: basePath + import.meta.env.VITE_APP_BASE_API,
  timeout: 50000,
  headers: { 'Content-Type': 'application/json;charset=utf-8' }
});


// getEnvTypeByUrl方法如下
//  getEnvTypeByUrl() {
//    return location.pathname.length > 0 ? location.pathname.substring(1) : ''
//  }

4. 配置完毕

配置完启动服务,自动打开网址如下

http://localhost:3060/main#/login?redirect=/dashboard   // main为配置的准生产标识,

这是接口访问地址

http://localhost:3060/main/dev-api/admin/api/menu/routes?bookId=666
// main 为当前接口连接的是准生产服务器
// dev-api 为服务器接口前缀,看后端设置不设置,后端不设置前端为空即可
// admin 为admin微服务器

5. 切换联调对象

切换为测试服务器则只需要在地址栏将main替换成test即可,无需重新配置,适合快速联调,新增后端服务只需在proxyTable.js里面直接添加所需的地址

切换为test

http://localhost:3060/test#/login?redirect=/dashboard   // test为配置的测试标识,
// 接口地址转变如下
http://localhost:3060/test/dev-api/admin/api/menu/routes?bookId=666
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值