关于vue3项目中 vite.config.js项目配置 多个请求地址代理配置

关于VUE3 vite.config.js文件配置相关

提示:本文记录了我们项目中使用到了多个不同的接口请求前缀地址配置代理,如果有更好的优化方案欢迎大佬指点呀:

以下是我最近项目中的vite.config.js文件配置,由于刚开始vue3不久,希望各位大佬不吝赐教,快来分享你们的配置呀。


vite.config.js配置如下

/* eslint-disable import/no-extraneous-dependencies */
import { defineConfig, loadEnv } from 'vite';
import path from 'path';
import vue from '@vitejs/plugin-vue';
import legacy from '@vitejs/plugin-legacy';

export default defineConfig(({ mode }) => {
	// 加载 .env 文件
	const env = loadEnv(mode, process.cwd());
	return {
		// host: "192.168.X.XXX", 这里改为自己的IP地址可以让同事直接访问自己本地,方便及时看到效果
		base: env.VITE_PUBLIC_PATH,
		resolve: {
			alias: {
				'@/': `${path.resolve(__dirname, 'src')}/`,
			},
		},
		server: {
			port: Number(env.VITE_PORT),
			proxy: {
				[env.VITE_BASE_API]: {
					// rewrite: (path) => path.replace(/^\/api/, ""),
					target: env.VITE_PROXY_API,
					changeOrigin: true,
				},
				[env.VITE_BASE_API1]: {
					target: env.VITE_PROXY_API,
					changeOrigin: true,
				},
				[env.VITE_BASE_API2]: {
					target: env.VITE_PROXY_API,
					changeOrigin: true,
				},
				[env.VITE_BASE_API3]: {
					target: env.VITE_PROXY_API,
					changeOrigin: true,
				},
				// [env.VITE_BASE_UPLOADS]: {
				// 	target: env.VITE_PROXY_UPLOADS,
				// 	changeOrigin: true,
				// },
			},
		},
		build: {
			chunkSizeWarningLimit: 1500,
		},
		plugins: [
			vue(),
			legacy({
				targets: ['defaults', 'not IE 11'],
			}),
		],
		css: {
			preprocessorOptions: {
				scss: {
					// 关闭编译时 字符编码 报错问题
					charset: false,
				},
			},
		},
	};
});

vite.config文件中引入的.env文件配置如下

由于此项目我们使用到了多个baseapi 前缀,故此处配置多个

VITE_APP_TITLE=我的项目名
VITE_PROXY_API=https://xxxxx.com 
VITE_PORT=9521
VITE_PUBLIC_PATH=./
VITE_BASE_API=/ctx-coop-member
VITE_BASE_API1=/ctx-coop-user
VITE_BASE_API2=/ctx-coop-portal
VITE_BASE_API3=/ctx-coop-finance
Vue 3 和 Vite 是现代前端开发的热门组合,Vite 是一个由尤雨溪(Vite的开发者)创建的高性能前端构建工具,它提供了快速的热更新和预构建能力。在使用 Vite 构建 Vue 项目时,你可能会遇到需要在 `vite.config.js` 文件配置本地代理的情况,以便访问在开发环境下运行的 API 或静态资源。 在 `vite.config.js` ,你可以使用 `define` 函数定义一个名为 `proxy` 的对象,这个对象的键是你希望访问的服务路径,值是一个配置对象。以下是一个基本的配置示例: ```javascript export default defineConfig({ // ...其他配置 // 本地代理配置 proxy: { '/api': { target: 'http://localhost:8080', // 你要代理的目标服务器地址 changeOrigin: true, // 允许跨域请求 pathRewrite: { '^/api' : '' } // 将请求的路径前缀 '/api' 替换为空字符串 } } }); ``` 在这个例子: - `/api` 是你在前端应用想访问的路径,例如 `/api/data`。 - `target` 指定了代理请求发送到的服务器地址。 - `changeOrigin` 设置为 `true`,意味着 Vite 会在发送请求时自动添加 `Origin` 头,处理跨域问题。 - `pathRewrite` 部分用于重写路径,这里将所有以 `/api` 开始的路径映射到目标服务器的根路径。 如果你有多个代理规则,可以在 `proxy` 对象添加更多条目,每个条目对应不同的服务或路径。 相关问题: 1. Vite代理功能是如何实现的? 2. 当我们在生产环境部署时,是否还需要设置这样的代理配置? 3. 如何在 Vite 处理动态生成的代理路径?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【拾光静好 微微一笑】

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值