vite.config.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. base: "./",
  29. mode,
  30. build: {
  31. sourcemap: true,
  32. },
  33. resolve: {
  34. alias: {
  35. "@": path.resolve(__dirname, "src"),
  36. "@kankan/components": path.resolve(__dirname, "src/components/base"),
  37. },
  38. extensions: [".js", ".ts", ".json", ".vue"],
  39. },
  40. server,
  41. plugins: [vue()],
  42. });
  43. };