import { fileURLToPath, URL } from 'node:url'; import { defineConfig } from 'vite'; import uniPlugin from '@dcloudio/vite-plugin-uni'; const uni = typeof uniPlugin === 'function' ? uniPlugin : uniPlugin.default; const devPort = Number(process.env.PORT) || 5175; const devHost = process.env.HOST || '0.0.0.0'; // 裸跑 npm run dev(如 Kimi Work 预览)时代理到本地 8080 后端; // 走 portless(scripts/dev.sh)时由 VITE_PROXY_TARGET 显式指向 https://wygj-api.localhost const proxyTarget = process.env.VITE_PROXY_TARGET || 'http://127.0.0.1:8080'; // 代理到线上等已带 /dev-api 前缀的网关时,设 VITE_PROXY_KEEP_PREFIX=1 保留前缀 const keepProxyPrefix = process.env.VITE_PROXY_KEEP_PREFIX === '1'; // DCloud's current App compiler imports two internal lifecycle helpers from // `vue`. Public Vue packages intentionally do not export them, so provide a // narrow App-only compatibility module. H5 continues to resolve the normal // Vue package. const appVueRuntimeShim = process.env.UNI_PLATFORM === 'app' ? fileURLToPath(new URL('./src/shims/vue-app-runtime.js', import.meta.url)) : undefined; const proxy = { '/dev-api': { target: proxyTarget, changeOrigin: true, secure: false, rewrite: (path) => (keepProxyPrefix ? path : path.replace(/^\/dev-api/, '')) } }; export default defineConfig({ plugins: [uni()], resolve: appVueRuntimeShim ? { alias: { vue: appVueRuntimeShim } } : undefined, server: { host: devHost, port: devPort, strictPort: true, proxy }, preview: { host: devHost, port: devPort, strictPort: true, proxy } });