vite.config.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import path from "path";
  2. import { defineConfig } from "vite";
  3. import Vue from "@vitejs/plugin-vue";
  4. import Icons from "unplugin-icons/vite";
  5. import IconsResolver from "unplugin-icons/resolver";
  6. import AutoImport from "unplugin-auto-import/vite";
  7. import Components from "unplugin-vue-components/vite";
  8. import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
  9. import { prismjsPlugin } from "vite-plugin-prismjs";
  10. const pathSrc = path.resolve(__dirname, "src");
  11. export default defineConfig({
  12. resolve: {
  13. alias: {
  14. "@": pathSrc,
  15. },
  16. },
  17. plugins: [
  18. Vue(),
  19. AutoImport({
  20. // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
  21. imports: ["vue"],
  22. // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)
  23. resolvers: [
  24. ElementPlusResolver(),
  25. // 自动导入图标组件
  26. IconsResolver({
  27. prefix: "Icon",
  28. }),
  29. ],
  30. dts: path.resolve(pathSrc, "auto-imports.d.ts"),
  31. }),
  32. Components({
  33. resolvers: [
  34. // 自动注册图标组件
  35. IconsResolver({
  36. enabledCollections: ["ep"],
  37. }),
  38. // 自动导入 Element Plus 组件
  39. ElementPlusResolver(),
  40. ],
  41. dts: path.resolve(pathSrc, "components.d.ts"),
  42. }),
  43. Icons({
  44. autoInstall: true,
  45. }),
  46. prismjsPlugin({
  47. languages: "all",
  48. }),
  49. ],
  50. });