vite.config.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. };