vite.config.ts 1.5 KB

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