vite.config.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { fileURLToPath, URL } from "node:url";
  2. import { defineConfig } from "vite";
  3. import vue from "@vitejs/plugin-vue";
  4. import vueJsx from "@vitejs/plugin-vue-jsx";
  5. import Components from "unplugin-vue-components/vite";
  6. import { VantResolver } from "unplugin-vue-components/resolvers";
  7. import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
  8. import path from "path";
  9. import AutoImport from "unplugin-auto-import/vite";
  10. import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
  11. // https://vitejs.dev/config/
  12. export default defineConfig({
  13. base: "./",
  14. css: {
  15. preprocessorOptions: {
  16. scss: {
  17. additionalData: `@use "@/assets/css/element.scss" as *;`,
  18. },
  19. },
  20. },
  21. plugins: [
  22. vue(),
  23. vueJsx(),
  24. Components({
  25. resolvers: [VantResolver(), ElementPlusResolver({ importStyle: "sass" })],
  26. }),
  27. AutoImport({
  28. resolvers: [ElementPlusResolver()],
  29. }),
  30. createSvgIconsPlugin({
  31. // 指定需要缓存的图标文件夹
  32. iconDirs: [path.resolve(process.cwd(), "src/assets/svgs")],
  33. // 指定symbolId格式
  34. symbolId: "icon-[dir]-[name]",
  35. }),
  36. ],
  37. resolve: {
  38. alias: {
  39. "@": fileURLToPath(new URL("./src", import.meta.url)),
  40. },
  41. },
  42. });