import { defineConfig } from "vite"; import uni from "@dcloudio/vite-plugin-uni"; /** * 学生端(uni-app)的 vite 配置。 * * ## ⚠️ 这里加了一个 dev proxy,解决一个真实的开发痛点 * * H5 **没有独立 dev server** 是之前的状态:`src/config/index.ts` 里 * `API_BASE_URL = location.origin`,而 vite dev server 不代理 `/api`, * 于是 `pnpm dev:h5`(另一个端口)打不到后端 8080 上的接口 —— * 只能 `pnpm build:h5` 再访问**构建产物**(当时由后端 8080 托管, * 2026-10 起改由 nginx 托管,见 deploy/nginx/xt.conf)。 * * 后果不只是"麻烦一点":**改一行要等一次完整构建**,而学生端正是改得最多的地方 * (表单、上传、核验页),反馈慢会直接改变开发方式 —— * 人会倾向"一次改一堆再构建",而那时候出问题已经分不清是哪一处引起的。 * * 所以这里补两件事(**缺一不可**): * ① 本文件的 `server.proxy`:把 `/api` 转发到后端; * ② `src/config/index.ts` 里让 `API_BASE_URL` 优先取 `VITE_API_BASE` —— * 否则它仍然是 `location.origin`(= dev server 自己),代理配得再对也没用。 * * ## ⚠️ 微信小程序端不受影响 * * 小程序的请求不走 vite(它在微信开发者工具里跑),而且微信的 * **request 合法域名是固定白名单**,配不了 localhost —— 所以那边照旧。 * 由 `#ifdef H5` 条件编译保证。 */ export default defineConfig({ plugins: [uni()], server: { port: 5174, proxy: { // 与 frontend-pc 同一做法:dev server 上的 /api 转发到本机后端 "/api": { target: "http://localhost:8080", changeOrigin: true, }, }, }, });