fix: update vite for stomp proxy exception
This commit is contained in:
135
vite.config.ts
135
vite.config.ts
@@ -5,87 +5,114 @@ import vue from '@vitejs/plugin-vue';
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx';
|
||||
import vueDevTools from 'vite-plugin-vue-devtools';
|
||||
|
||||
const line10ApiProxyList: [string, string][] = [
|
||||
['/minio', 'http://10.18.128.10:9000'],
|
||||
type ProxyItem = {
|
||||
key: string;
|
||||
target: string;
|
||||
rewrite?: [string, string];
|
||||
};
|
||||
|
||||
['/api', 'http://10.18.128.10:18760/api'],
|
||||
const line10ApiProxyList: ProxyItem[] = [
|
||||
{ key: '/minio', target: 'http://10.18.128.10:9000', rewrite: ['/minio', ''] },
|
||||
|
||||
['/1075/api', 'http://10.18.128.10:18760/api'],
|
||||
{ key: '/api', target: 'http://10.18.128.10:18760' },
|
||||
|
||||
['/1001/api', 'http://10.18.129.10:18760/api'],
|
||||
['/1002/api', 'http://10.18.131.10:18760/api'],
|
||||
['/1003/api', 'http://10.18.133.10:18760/api'],
|
||||
['/1004/api', 'http://10.18.135.10:18760/api'],
|
||||
['/1005/api', 'http://10.18.137.10:18760/api'],
|
||||
['/1006/api', 'http://10.18.139.10:18760/api'],
|
||||
['/1007/api', 'http://10.18.141.10:18760/api'],
|
||||
['/1008/api', 'http://10.18.143.10:18760/api'],
|
||||
['/1009/api', 'http://10.18.145.10:18760/api'],
|
||||
['/1010/api', 'http://10.18.147.10:18760/api'],
|
||||
{ key: '/1075/api', target: 'http://10.18.128.10:18760', rewrite: ['/1075/api', '/api'] },
|
||||
|
||||
['/1011/api', 'http://10.18.149.10:18760/api'],
|
||||
['/1012/api', 'http://10.18.151.10:18760/api'],
|
||||
['/1013/api', 'http://10.18.153.10:18760/api'],
|
||||
['/1014/api', 'http://10.18.155.10:18760/api'],
|
||||
['/1015/api', 'http://10.18.157.10:18760/api'],
|
||||
['/1016/api', 'http://10.18.159.10:18760/api'],
|
||||
['/1017/api', 'http://10.18.161.10:18760/api'],
|
||||
['/1018/api', 'http://10.18.163.10:18760/api'],
|
||||
['/1019/api', 'http://10.18.165.10:18760/api'],
|
||||
['/1020/api', 'http://10.18.167.10:18760/api'],
|
||||
{ key: '/1001/api', target: 'http://10.18.129.10:18760', rewrite: ['/1001/api', '/api'] },
|
||||
{ key: '/1002/api', target: 'http://10.18.131.10:18760', rewrite: ['/1002/api', '/api'] },
|
||||
{ key: '/1003/api', target: 'http://10.18.133.10:18760', rewrite: ['/1003/api', '/api'] },
|
||||
{ key: '/1004/api', target: 'http://10.18.135.10:18760', rewrite: ['/1004/api', '/api'] },
|
||||
{ key: '/1005/api', target: 'http://10.18.137.10:18760', rewrite: ['/1005/api', '/api'] },
|
||||
{ key: '/1006/api', target: 'http://10.18.139.10:18760', rewrite: ['/1006/api', '/api'] },
|
||||
{ key: '/1007/api', target: 'http://10.18.141.10:18760', rewrite: ['/1007/api', '/api'] },
|
||||
{ key: '/1008/api', target: 'http://10.18.143.10:18760', rewrite: ['/1008/api', '/api'] },
|
||||
{ key: '/1009/api', target: 'http://10.18.145.10:18760', rewrite: ['/1009/api', '/api'] },
|
||||
{ key: '/1010/api', target: 'http://10.18.147.10:18760', rewrite: ['/1010/api', '/api'] },
|
||||
|
||||
['/1021/api', 'http://10.18.169.10:18760/api'],
|
||||
['/1022/api', 'http://10.18.171.10:18760/api'],
|
||||
['/1023/api', 'http://10.18.173.10:18760/api'],
|
||||
['/1024/api', 'http://10.18.175.10:18760/api'],
|
||||
['/1025/api', 'http://10.18.177.10:18760/api'],
|
||||
['/1026/api', 'http://10.18.179.10:18760/api'],
|
||||
['/1027/api', 'http://10.18.181.10:18760/api'],
|
||||
['/1028/api', 'http://10.18.183.10:18760/api'],
|
||||
['/1029/api', 'http://10.18.185.10:18760/api'],
|
||||
['/1030/api', 'http://10.18.187.10:18760/api'],
|
||||
{ key: '/1011/api', target: 'http://10.18.149.10:18760', rewrite: ['/1011/api', '/api'] },
|
||||
{ key: '/1012/api', target: 'http://10.18.151.10:18760', rewrite: ['/1012/api', '/api'] },
|
||||
{ key: '/1013/api', target: 'http://10.18.153.10:18760', rewrite: ['/1013/api', '/api'] },
|
||||
{ key: '/1014/api', target: 'http://10.18.155.10:18760', rewrite: ['/1014/api', '/api'] },
|
||||
{ key: '/1015/api', target: 'http://10.18.157.10:18760', rewrite: ['/1015/api', '/api'] },
|
||||
{ key: '/1016/api', target: 'http://10.18.159.10:18760', rewrite: ['/1016/api', '/api'] },
|
||||
{ key: '/1017/api', target: 'http://10.18.161.10:18760', rewrite: ['/1017/api', '/api'] },
|
||||
{ key: '/1018/api', target: 'http://10.18.163.10:18760', rewrite: ['/1018/api', '/api'] },
|
||||
{ key: '/1019/api', target: 'http://10.18.165.10:18760', rewrite: ['/1019/api', '/api'] },
|
||||
{ key: '/1020/api', target: 'http://10.18.167.10:18760', rewrite: ['/1020/api', '/api'] },
|
||||
|
||||
['/1031/api', 'http://10.18.189.10:18760/api'],
|
||||
{ key: '/1021/api', target: 'http://10.18.169.10:18760', rewrite: ['/1021/api', '/api'] },
|
||||
{ key: '/1022/api', target: 'http://10.18.171.10:18760', rewrite: ['/1022/api', '/api'] },
|
||||
{ key: '/1023/api', target: 'http://10.18.173.10:18760', rewrite: ['/1023/api', '/api'] },
|
||||
{ key: '/1024/api', target: 'http://10.18.175.10:18760', rewrite: ['/1024/api', '/api'] },
|
||||
{ key: '/1025/api', target: 'http://10.18.177.10:18760', rewrite: ['/1025/api', '/api'] },
|
||||
{ key: '/1026/api', target: 'http://10.18.179.10:18760', rewrite: ['/1026/api', '/api'] },
|
||||
{ key: '/1027/api', target: 'http://10.18.181.10:18760', rewrite: ['/1027/api', '/api'] },
|
||||
{ key: '/1028/api', target: 'http://10.18.183.10:18760', rewrite: ['/1028/api', '/api'] },
|
||||
{ key: '/1029/api', target: 'http://10.18.185.10:18760', rewrite: ['/1029/api', '/api'] },
|
||||
{ key: '/1030/api', target: 'http://10.18.187.10:18760', rewrite: ['/1030/api', '/api'] },
|
||||
|
||||
{ key: '/1031/api', target: 'http://10.18.189.10:18760', rewrite: ['/1031/api', '/api'] },
|
||||
];
|
||||
const apiProxyList: [string, string][] = [
|
||||
const apiProxyList: ProxyItem[] = [
|
||||
//
|
||||
...line10ApiProxyList,
|
||||
];
|
||||
const wsProxyList: [string, string][] = [
|
||||
const wsProxyList: ProxyItem[] = [
|
||||
//
|
||||
['/ws', 'ws://10.18.128.10:18103/ws'],
|
||||
{ key: '/ws', target: 'ws://10.18.128.10:18103' },
|
||||
];
|
||||
|
||||
// https://vite.dev/config/
|
||||
export default defineConfig((/* { command, mode } */) => {
|
||||
const viteProxy: Record<string, string | ProxyOptions> = {};
|
||||
|
||||
const getRewriteFn = (proxyItem: ProxyItem): ProxyOptions['rewrite'] => {
|
||||
const { key, rewrite } = proxyItem;
|
||||
const [rewriteFrom, rewriteTo] = rewrite ?? [key, key];
|
||||
return (path) => {
|
||||
console.log(new Date().toLocaleString());
|
||||
console.log(`请求路径: ${path}`);
|
||||
if (!rewrite) return path;
|
||||
return path.replace(new RegExp(`^${rewriteFrom}`), `${rewriteTo}`);
|
||||
};
|
||||
};
|
||||
|
||||
const getConfigureFn = (opts?: { ws?: boolean }): ProxyOptions['configure'] => {
|
||||
const { ws } = opts ?? {};
|
||||
if (!ws) {
|
||||
return (proxy, options) => {
|
||||
const { target } = options;
|
||||
proxy.on('proxyReq', (_, req) => {
|
||||
console.log(`将代理到: ${target}${req.url}`);
|
||||
});
|
||||
};
|
||||
} else {
|
||||
return (proxy, options) => {
|
||||
const { target } = options;
|
||||
proxy.on('proxyReqWs', (_, req) => {
|
||||
console.log(`将代理到: ${target}${req.url}`);
|
||||
});
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
apiProxyList.forEach((apiProxy) => {
|
||||
const [key, target] = apiProxy;
|
||||
const { key, target } = apiProxy;
|
||||
viteProxy[key] = {
|
||||
target,
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => {
|
||||
console.log(new Date().toLocaleString());
|
||||
console.log(`请求路径: ${path}`);
|
||||
const rewrittenPath = path.replace(new RegExp(`^${key}`), '');
|
||||
console.log(`将代理到: ${target}${rewrittenPath}`);
|
||||
return rewrittenPath;
|
||||
},
|
||||
rewrite: getRewriteFn(apiProxy),
|
||||
configure: getConfigureFn(),
|
||||
};
|
||||
});
|
||||
wsProxyList.forEach((wsProxy) => {
|
||||
const [key, target] = wsProxy;
|
||||
const { key, target } = wsProxy;
|
||||
viteProxy[key] = {
|
||||
target,
|
||||
changeOrigin: true,
|
||||
ws: true,
|
||||
rewrite: (path) => {
|
||||
console.log(new Date().toLocaleString());
|
||||
console.log(`请求路径: ${path}`);
|
||||
const rewrittenPath = path.replace(new RegExp(`^${key}`), '');
|
||||
console.log(`将代理到: ${target}${rewrittenPath}`);
|
||||
return rewrittenPath;
|
||||
},
|
||||
rewrite: getRewriteFn(wsProxy),
|
||||
configure: getConfigureFn({ ws: true }),
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user