ai_trade_assistance/vite.config.ts

70 lines
2.2 KiB
TypeScript

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { fileURLToPath, URL } from "node:url";
const BAIDU_ORIGIN = "https://gushitong.baidu.com";
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
server: {
proxy: {
/**
* WebSocket must be registered before `/baidu` so it is not swallowed.
* Baidu rejects non-baidu Origins (localhost → 403); rewrite Origin here.
*/
"/finance-ws": {
target: "wss://finance-ws.pae.baidu.com",
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(/^\/finance-ws/, "") || "/",
configure: (proxy) => {
const setBaiduHeaders = (proxyReq: {
setHeader: (k: string, v: string) => void;
}) => {
proxyReq.setHeader("Origin", BAIDU_ORIGIN);
proxyReq.setHeader("Referer", `${BAIDU_ORIGIN}/`);
};
proxy.on("proxyReq", setBaiduHeaders);
proxy.on("proxyReqWs", setBaiduHeaders);
},
},
"/baidu": {
target: "https://finance.pae.baidu.com",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/baidu/, ""),
headers: {
Referer: `${BAIDU_ORIGIN}/`,
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
},
},
/** 同花顺 dq 数据源(主力异动等);须排在 /jqka 前,避免前缀被吞 */
"/dq": {
target: "https://dq.10jqka.com.cn",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/dq/, ""),
},
"/jqka": {
target: "https://fupage.10jqka.com.cn",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/jqka/, ""),
},
"/deepseek": {
target: "https://api.deepseek.com",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/deepseek/, ""),
},
"/uuquant": {
target: "http://162.14.77.110:8888",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/uuquant/, ""),
},
},
},
});