|
@@ -0,0 +1,52 @@
|
|
|
|
|
+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:8998",
|
|
|
|
|
+ changeOrigin: true,
|
|
|
|
|
+ // rewrite: (path) => path.replace(/^\/api/upms/, '') // 如需移除 /api 前缀可取消注释
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ };
|
|
|
|
|
+});
|