vite.config.ts 1.4 KB

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