vite.config.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { defineConfig, loadEnv } from "vite";
  2. import vue from "@vitejs/plugin-vue";
  3. import path from "path";
  4. import { createServer as createMockServer } from "./server/mock";
  5. export default async ({ mode }) => {
  6. const env = loadEnv(mode, process.cwd());
  7. const isDev = mode === "development";
  8. let server;
  9. if (isDev) {
  10. await createMockServer(Number(env.VITE_DEV_PORT));
  11. server = {
  12. proxy: {
  13. ["/" + env.VITE_API_BASE_URL]: {
  14. target: `http://localhost:${env.VITE_DEV_PORT}`,
  15. changeOrigin: true,
  16. rewrite: (path) =>
  17. path.replace(new RegExp(`^/${env.VITE_API_BASE_URL}`), ""),
  18. },
  19. ["/laser"]: {
  20. target: `http://localhost:${env.VITE_DEV_PORT}`,
  21. changeOrigin: true,
  22. rewrite: (path) => path.replace(new RegExp(`^/laser`), "laser"),
  23. },
  24. },
  25. };
  26. }
  27. return defineConfig({
  28. mode,
  29. build: {
  30. sourcemap: true,
  31. },
  32. resolve: {
  33. alias: {
  34. "@": path.resolve(__dirname, "src"),
  35. "@kankan/components": path.resolve(__dirname, "src/components/base"),
  36. },
  37. extensions: [".js", ".ts", ".json", ".vue"],
  38. },
  39. server,
  40. plugins: [vue()],
  41. });
  42. };