fix: update vite for stomp proxy exception

This commit is contained in:
yangsy
2025-11-05 15:01:29 +08:00
parent b5806ad1d0
commit c5f916757e
3 changed files with 127 additions and 99 deletions

View File

@@ -16,7 +16,7 @@
"format": "prettier --write src/"
},
"dependencies": {
"@stomp/stompjs": "^7.1.1",
"@stomp/stompjs": "^7.2.1",
"@tanstack/vue-query": "^5.83.1",
"@tanstack/vue-query-devtools": "^5.84.0",
"@vueuse/core": "^13.6.0",
@@ -56,7 +56,7 @@
"prettier": "3.6.2",
"tsx": "^4.20.5",
"typescript": "~5.8.0",
"vite": "^7.0.6",
"vite": "^7.1.12",
"vite-plugin-vue-devtools": "^8.0.0",
"vue-tsc": "^3.0.4"
},

87
pnpm-lock.yaml generated
View File

@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@stomp/stompjs':
specifier: ^7.1.1
version: 7.1.1
specifier: ^7.2.1
version: 7.2.1
'@tanstack/vue-query':
specifier: ^5.83.1
version: 5.83.1(vue@3.5.18(typescript@5.8.3))
@@ -89,10 +89,10 @@ importers:
version: 0.13.0
'@vitejs/plugin-vue':
specifier: ^6.0.1
version: 6.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))
version: 6.0.1(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))
'@vitejs/plugin-vue-jsx':
specifier: ^5.0.1
version: 5.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))
version: 5.0.1(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))
'@vue/eslint-config-prettier':
specifier: ^10.2.0
version: 10.2.0(eslint@9.33.0(jiti@2.5.1))(prettier@3.6.2)
@@ -124,11 +124,11 @@ importers:
specifier: ~5.8.0
version: 5.8.3
vite:
specifier: ^7.0.6
version: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
specifier: ^7.1.12
version: 7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite-plugin-vue-devtools:
specifier: ^8.0.0
version: 8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))
version: 8.0.0(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))
vue-tsc:
specifier: ^3.0.4
version: 3.0.5(typescript@5.8.3)
@@ -739,8 +739,8 @@ packages:
resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
engines: {node: '>=18'}
'@stomp/stompjs@7.1.1':
resolution: {integrity: sha512-chcDs6YkAnKp1FqzwhGvh3i7v0+/ytzqWdKYw6XzINEKAzke/iD00dNgFPWSZEqktHOK+C1gSzXhLkLbARIaZw==}
'@stomp/stompjs@7.2.1':
resolution: {integrity: sha512-DLd/WeicnHS5SsWWSk3x6/pcivqchNaEvg9UEGVqAcfYEBVmS9D6980ckXjTtfpXLjdLDsd96M7IuX4w7nzq5g==}
'@tanstack/match-sorter-utils@8.19.4':
resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==}
@@ -1388,8 +1388,9 @@ packages:
fd-slicer2@1.2.0:
resolution: {integrity: sha512-3lBUNUckhMZduCc4g+Pw4Ve16LD9vpX9b8qUkkKq2mgDRLYWzblszZH2luADnJqjJe+cypngjCuKRm/IW12rRw==}
fdir@6.4.6:
resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
fdir@6.5.0:
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
engines: {node: '>=12.0.0'}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
@@ -2025,8 +2026,8 @@ packages:
resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==}
engines: {node: '>= 0.8.0'}
tinyglobby@0.2.14:
resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
tinyglobby@0.2.15:
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
engines: {node: '>=12.0.0'}
to-buffer@1.2.1:
@@ -2137,8 +2138,8 @@ packages:
peerDependencies:
vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
vite@7.1.2:
resolution: {integrity: sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==}
vite@7.1.12:
resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
@@ -2797,7 +2798,7 @@ snapshots:
'@sindresorhus/merge-streams@4.0.0': {}
'@stomp/stompjs@7.1.1': {}
'@stomp/stompjs@7.2.1': {}
'@tanstack/match-sorter-utils@8.19.4':
dependencies:
@@ -2944,21 +2945,21 @@ snapshots:
'@vicons/ionicons5@0.13.0': {}
'@vitejs/plugin-vue-jsx@5.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))':
'@vitejs/plugin-vue-jsx@5.0.1(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))':
dependencies:
'@babel/core': 7.28.0
'@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0)
'@rolldown/pluginutils': 1.0.0-beta.32
'@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.0)
vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite: 7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vue: 3.5.18(typescript@5.8.3)
transitivePeerDependencies:
- supports-color
'@vitejs/plugin-vue@6.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))':
'@vitejs/plugin-vue@6.0.1(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.29
vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite: 7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vue: 3.5.18(typescript@5.8.3)
'@volar/language-core@2.4.22':
@@ -3043,14 +3044,14 @@ snapshots:
dependencies:
'@vue/devtools-kit': 7.7.7
'@vue/devtools-core@8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))':
'@vue/devtools-core@8.0.0(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))':
dependencies:
'@vue/devtools-kit': 8.0.0
'@vue/devtools-shared': 8.0.0
mitt: 3.0.1
nanoid: 5.1.5
pathe: 2.0.3
vite-hot-client: 2.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
vite-hot-client: 2.1.0(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
vue: 3.5.18(typescript@5.8.3)
transitivePeerDependencies:
- vite
@@ -3577,7 +3578,7 @@ snapshots:
dependencies:
pend: 1.2.0
fdir@6.4.6(picomatch@4.0.3):
fdir@6.5.0(picomatch@4.0.3):
optionalDependencies:
picomatch: 4.0.3
@@ -4140,9 +4141,9 @@ snapshots:
to-buffer: 1.2.1
xtend: 4.0.2
tinyglobby@0.2.14:
tinyglobby@0.2.15:
dependencies:
fdir: 6.4.6(picomatch@4.0.3)
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
to-buffer@1.2.1:
@@ -4221,17 +4222,17 @@ snapshots:
evtd: 0.2.4
vue: 3.5.18(typescript@5.8.3)
vite-dev-rpc@1.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)):
vite-dev-rpc@1.1.0(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)):
dependencies:
birpc: 2.5.0
vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite-hot-client: 2.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
vite: 7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite-hot-client: 2.1.0(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
vite-hot-client@2.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)):
vite-hot-client@2.1.0(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)):
dependencies:
vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite: 7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite-plugin-inspect@11.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)):
vite-plugin-inspect@11.3.2(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)):
dependencies:
ansis: 4.1.0
debug: 4.4.1
@@ -4241,27 +4242,27 @@ snapshots:
perfect-debounce: 1.0.0
sirv: 3.0.1
unplugin-utils: 0.2.5
vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite-dev-rpc: 1.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
vite: 7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite-dev-rpc: 1.1.0(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
transitivePeerDependencies:
- supports-color
vite-plugin-vue-devtools@8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3)):
vite-plugin-vue-devtools@8.0.0(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3)):
dependencies:
'@vue/devtools-core': 8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))
'@vue/devtools-core': 8.0.0(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))
'@vue/devtools-kit': 8.0.0
'@vue/devtools-shared': 8.0.0
execa: 9.6.0
sirv: 3.0.1
vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite-plugin-inspect: 11.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
vite-plugin-vue-inspector: 5.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
vite: 7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite-plugin-inspect: 11.3.2(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
vite-plugin-vue-inspector: 5.3.2(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))
transitivePeerDependencies:
- '@nuxt/kit'
- supports-color
- vue
vite-plugin-vue-inspector@5.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)):
vite-plugin-vue-inspector@5.3.2(vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)):
dependencies:
'@babel/core': 7.28.0
'@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.0)
@@ -4272,18 +4273,18 @@ snapshots:
'@vue/compiler-dom': 3.5.18
kolorist: 1.8.0
magic-string: 0.30.17
vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
vite: 7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)
transitivePeerDependencies:
- supports-color
vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5):
vite@7.1.12(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5):
dependencies:
esbuild: 0.25.8
fdir: 6.4.6(picomatch@4.0.3)
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
rollup: 4.46.2
tinyglobby: 0.2.14
tinyglobby: 0.2.15
optionalDependencies:
'@types/node': 22.17.1
fsevents: 2.3.3

View File

@@ -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 }),
};
});