185 lines
10 KiB
TypeScript
185 lines
10 KiB
TypeScript
import vue from '@vitejs/plugin-vue';
|
|
import vueJsx from '@vitejs/plugin-vue-jsx';
|
|
import { fileURLToPath, URL } from 'node:url';
|
|
import { defineConfig, ProxyOptions } from 'vite';
|
|
import vueDevTools from 'vite-plugin-vue-devtools';
|
|
|
|
type ProxyItem = {
|
|
key: string;
|
|
target: string;
|
|
rewrite?: [string, string];
|
|
ws?: boolean;
|
|
};
|
|
|
|
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}`);
|
|
});
|
|
};
|
|
}
|
|
};
|
|
|
|
const line01ApiProxyList: ProxyItem[] = [
|
|
{ key: '/0175/api', target: 'http://10.14.0.10:18760', rewrite: ['/0175/api', '/api'] },
|
|
{ key: '/0176/api', target: 'http://10.14.97.10:18760', rewrite: ['/0176/api', '/api'] },
|
|
{ key: '/0168/api', target: 'http://10.14.116.10:18760', rewrite: ['/0168/api', '/api'] },
|
|
{ key: '/0181/api', target: 'http://10.14.120.10:18760', rewrite: ['/0181/api', '/api'] },
|
|
{ key: '/0101/api', target: 'http://10.14.1.10:18760', rewrite: ['/0101/api', '/api'] },
|
|
{ key: '/0102/api', target: 'http://10.14.3.10:18760', rewrite: ['/0102/api', '/api'] },
|
|
{ key: '/0103/api', target: 'http://10.14.5.10:18760', rewrite: ['/0103/api', '/api'] },
|
|
{ key: '/0104/api', target: 'http://10.14.7.10:18760', rewrite: ['/0104/api', '/api'] },
|
|
{ key: '/0105/api', target: 'http://10.14.9.10:18760', rewrite: ['/0105/api', '/api'] },
|
|
{ key: '/0106/api', target: 'http://10.14.11.10:18760', rewrite: ['/0106/api', '/api'] },
|
|
{ key: '/0107/api', target: 'http://10.14.13.10:18760', rewrite: ['/0107/api', '/api'] },
|
|
{ key: '/0108/api', target: 'http://10.14.15.10:18760', rewrite: ['/0108/api', '/api'] },
|
|
{ key: '/0109/api', target: 'http://10.14.17.10:18760', rewrite: ['/0109/api', '/api'] },
|
|
{ key: '/0110/api', target: 'http://10.14.19.10:18760', rewrite: ['/0110/api', '/api'] },
|
|
{ key: '/0111/api', target: 'http://10.14.21.10:18760', rewrite: ['/0111/api', '/api'] },
|
|
{ key: '/0112/api', target: 'http://10.14.23.10:18760', rewrite: ['/0112/api', '/api'] },
|
|
{ key: '/0113/api', target: 'http://10.14.25.10:18760', rewrite: ['/0113/api', '/api'] },
|
|
{ key: '/0114/api', target: 'http://10.14.27.10:18760', rewrite: ['/0114/api', '/api'] },
|
|
{ key: '/0115/api', target: 'http://10.14.29.10:18760', rewrite: ['/0115/api', '/api'] },
|
|
{ key: '/0116/api', target: 'http://10.14.31.10:18760', rewrite: ['/0116/api', '/api'] },
|
|
{ key: '/0117/api', target: 'http://10.14.33.10:18760', rewrite: ['/0117/api', '/api'] },
|
|
{ key: '/0118/api', target: 'http://10.14.35.10:18760', rewrite: ['/0118/api', '/api'] },
|
|
{ key: '/0119/api', target: 'http://10.14.37.10:18760', rewrite: ['/0119/api', '/api'] },
|
|
{ key: '/0120/api', target: 'http://10.14.39.10:18760', rewrite: ['/0120/api', '/api'] },
|
|
{ key: '/0121/api', target: 'http://10.14.41.10:18760', rewrite: ['/0121/api', '/api'] },
|
|
{ key: '/0122/api', target: 'http://10.14.43.10:18760', rewrite: ['/0122/api', '/api'] },
|
|
{ key: '/0123/api', target: 'http://10.14.45.10:18760', rewrite: ['/0123/api', '/api'] },
|
|
{ key: '/0124/api', target: 'http://10.14.47.10:18760', rewrite: ['/0124/api', '/api'] },
|
|
{ key: '/0125/api', target: 'http://10.14.49.10:18760', rewrite: ['/0125/api', '/api'] },
|
|
{ key: '/0126/api', target: 'http://10.14.51.10:18760', rewrite: ['/0126/api', '/api'] },
|
|
{ key: '/0127/api', target: 'http://10.14.53.10:18760', rewrite: ['/0127/api', '/api'] },
|
|
{ key: '/0128/api', target: 'http://10.14.55.10:18760', rewrite: ['/0128/api', '/api'] },
|
|
];
|
|
|
|
const line04ApiProxyList: ProxyItem[] = [
|
|
{ key: '/0475/api', target: 'http://10.15.128.10:18760', rewrite: ['/0475/api', '/api'] },
|
|
{ key: '/0480/api', target: 'http://10.15.244.10:18760', rewrite: ['/0480/api', '/api'] },
|
|
{ key: '/0401/api', target: 'http://10.15.129.10:18760', rewrite: ['/0401/api', '/api'] },
|
|
{ key: '/0402/api', target: 'http://10.15.131.10:18760', rewrite: ['/0402/api', '/api'] },
|
|
{ key: '/0403/api', target: 'http://10.15.133.10:18760', rewrite: ['/0403/api', '/api'] },
|
|
{ key: '/0404/api', target: 'http://10.15.135.10:18760', rewrite: ['/0404/api', '/api'] },
|
|
{ key: '/0405/api', target: 'http://10.15.137.10:18760', rewrite: ['/0405/api', '/api'] },
|
|
{ key: '/0406/api', target: 'http://10.15.139.10:18760', rewrite: ['/0406/api', '/api'] },
|
|
{ key: '/0407/api', target: 'http://10.15.141.10:18760', rewrite: ['/0407/api', '/api'] },
|
|
{ key: '/0408/api', target: 'http://10.15.143.10:18760', rewrite: ['/0408/api', '/api'] },
|
|
{ key: '/0409/api', target: 'http://10.15.145.10:18760', rewrite: ['/0409/api', '/api'] },
|
|
{ key: '/0410/api', target: 'http://10.15.147.10:18760', rewrite: ['/0410/api', '/api'] },
|
|
{ key: '/0411/api', target: 'http://10.15.149.10:18760', rewrite: ['/0411/api', '/api'] },
|
|
{ key: '/0412/api', target: 'http://10.15.151.10:18760', rewrite: ['/0412/api', '/api'] },
|
|
{ key: '/0413/api', target: 'http://10.15.153.10:18760', rewrite: ['/0413/api', '/api'] },
|
|
{ key: '/0414/api', target: 'http://10.15.155.10:18760', rewrite: ['/0414/api', '/api'] },
|
|
{ key: '/0415/api', target: 'http://10.15.157.10:18760', rewrite: ['/0415/api', '/api'] },
|
|
{ key: '/0416/api', target: 'http://10.15.159.10:18760', rewrite: ['/0416/api', '/api'] },
|
|
{ key: '/0417/api', target: 'http://10.15.161.10:18760', rewrite: ['/0417/api', '/api'] },
|
|
{ key: '/0418/api', target: 'http://10.15.163.10:18760', rewrite: ['/0418/api', '/api'] },
|
|
{ key: '/0419/api', target: 'http://10.15.165.10:18760', rewrite: ['/0419/api', '/api'] },
|
|
{ key: '/0420/api', target: 'http://10.15.167.10:18760', rewrite: ['/0420/api', '/api'] },
|
|
];
|
|
|
|
const line10ApiProxyList: ProxyItem[] = [
|
|
{ key: '/1075/api', target: 'http://10.18.128.10:18760', rewrite: ['/1075/api', '/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'] },
|
|
{ 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'] },
|
|
{ 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'] },
|
|
{ key: '/1032/api', target: 'http://10.18.244.10:18760', rewrite: ['/1032/api', '/api'] },
|
|
];
|
|
|
|
const apiProxyList: ProxyItem[] = [
|
|
// { key: '/minio', target: 'http://10.14.0.10:9000', rewrite: ['/minio', ''] },
|
|
// { key: '/api', target: 'http://10.14.0.10:18760' },
|
|
// { key: '/ws', target: 'ws://10.14.0.10:18103', ws: true },
|
|
...line01ApiProxyList,
|
|
|
|
// { key: '/minio', target: 'http://10.15.128.10:9000', rewrite: ['/minio', ''] },
|
|
// { key: '/api', target: 'http://10.15.128.10:18760' },
|
|
// { key: '/ws', target: 'ws://10.15.128.10:18103', ws: true },
|
|
...line04ApiProxyList,
|
|
|
|
{ key: '/minio', target: 'http://10.18.128.10:9000', rewrite: ['/minio', ''] },
|
|
{ key: '/api', target: 'http://10.18.128.10:18760' },
|
|
{ key: '/ws', target: 'ws://10.18.128.10:18103', ws: true },
|
|
...line10ApiProxyList,
|
|
];
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig((/* { command, mode } */) => {
|
|
const viteProxy: Record<string, string | ProxyOptions> = {};
|
|
|
|
apiProxyList.forEach((apiProxy) => {
|
|
const { key, target, ws } = apiProxy;
|
|
viteProxy[key] = {
|
|
target,
|
|
changeOrigin: true,
|
|
ws,
|
|
rewrite: getRewriteFn(apiProxy),
|
|
configure: getConfigureFn({ ws }),
|
|
};
|
|
});
|
|
|
|
return {
|
|
plugins: [vue(), vueJsx(), vueDevTools()],
|
|
resolve: {
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url)),
|
|
},
|
|
},
|
|
server: {
|
|
port: 9763,
|
|
proxy: viteProxy,
|
|
},
|
|
};
|
|
});
|