vite.config.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { defineConfig, splitVendorChunkPlugin } from "vite";
  2. import { fileURLToPath, URL } from "url";
  3. import react from "@vitejs/plugin-react";
  4. import { visualizer } from "rollup-plugin-visualizer";
  5. import image from "@rollup/plugin-image";
  6. /**
  7. * @type {import('vite').UserConfig}
  8. * @see https://vitejs.dev/config/
  9. */
  10. export default defineConfig({
  11. plugins: [react(), visualizer(), image(), splitVendorChunkPlugin()],
  12. resolve: {
  13. alias: {
  14. "@": fileURLToPath(new URL("./src", import.meta.url)),
  15. lodash: "lodash-es"
  16. }
  17. },
  18. server: {
  19. port: 3000
  20. },
  21. build: {
  22. outDir: "dist",
  23. assetsDir: "static",
  24. cssCodeSplit: true,
  25. rollupOptions: {
  26. output: {
  27. manualChunks: {
  28. react: ["react", "react-dom"],
  29. router: ["react-router", "react-router-dom"],
  30. "mui-core": ["@emotion/react", "@emotion/styled", "@emotion/cache", "@mui/base", "@mui/system"],
  31. mui: ["@mui/material"],
  32. "mui-plugins": ["@mui/lab", "mui-markdown", "notistack", "@mui/x-date-pickers", "tss-react"],
  33. ant: ["@ant-design/icons", "@ant-design/colors"],
  34. ahooks: ["ahooks", "@ahooksjs/use-url-state"],
  35. axios: ["axios"],
  36. lodash: ["lodash-es"],
  37. redux: ["redux", "react-redux", "@reduxjs/toolkit"],
  38. formik: ["formik", "yup"]
  39. },
  40. chunkFileNames: "static/js/[name]-[hash].chunk.js"
  41. }
  42. }
  43. }
  44. });