import type { ProxyOptions } from 'vite' /** 本地 dev 代理天地图时伪造的 Referer,须已在天地图控制台白名单中(勿填 localhost) */ const DEV_REFERER = process.env.VITE_TIANDITU_DEV_REFERER?.trim() || 'https://szkp-map.langye.net/' const refererOnProxy: ProxyOptions['configure'] = (proxy) => { proxy.on('proxyReq', (proxyReq) => { proxyReq.setHeader('Referer', DEV_REFERER) }) } /** 供 vite.config 使用:localhost 无法入白名单时,走同源代理加载 SDK 与瓦片 */ export function tiandituDevProxy(): Record { return { '/tianditu-tile-proxy': { target: 'https://t0.tianditu.gov.cn', changeOrigin: true, secure: true, rewrite: (path) => path.replace(/^\/tianditu-tile-proxy/, ''), configure: refererOnProxy, }, '/tianditu-api-proxy': { target: 'https://api.tianditu.gov.cn', changeOrigin: true, secure: true, rewrite: (path) => path.replace(/^\/tianditu-api-proxy/, ''), configure: refererOnProxy, }, } }