import { defineConfig, type ConfigEnv, type UserConfig, type PluginOption, } from "vite"; import vue from "@vitejs/plugin-vue"; import { resolve } from "path"; import { viteMockServe } from "vite-plugin-mock"; export default defineConfig(({ mode }: ConfigEnv): UserConfig => { // mock 模式: npm run start (mode = 'mock') // 开发模式: npm run dev (mode = 'development') const isMock = mode === "mock"; // 动态配置插件 const plugins: PluginOption[] = [vue()]; // 仅在 mock 模式下启用 mock 插件 if (isMock) { plugins.push( viteMockServe({ mockPath: "src/mock", localEnabled: true, prodEnabled: false, }), ); } return { plugins, resolve: { alias: { "@": resolve(__dirname, "src"), }, }, server: { port: 5173, open: true, // mock 模式下禁用代理,让 mock 服务处理 /api 请求 proxy: isMock ? undefined : { "/api": { target: "http://localhost:8997", changeOrigin: true, // rewrite: (path) => path.replace(/^\/api/upms/, '') // 如需移除 /api 前缀可取消注释 }, }, }, }; });