import path from "path"; import { defineConfig } from "vite"; import Vue from "@vitejs/plugin-vue"; import Icons from "unplugin-icons/vite"; import IconsResolver from "unplugin-icons/resolver"; import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite"; import { ElementPlusResolver } from "unplugin-vue-components/resolvers"; import { prismjsPlugin } from "vite-plugin-prismjs"; const pathSrc = path.resolve(__dirname, "src"); export default defineConfig({ resolve: { alias: { "@": pathSrc, }, }, plugins: [ Vue(), AutoImport({ // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等 imports: ["vue"], // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式) resolvers: [ ElementPlusResolver(), // 自动导入图标组件 IconsResolver({ prefix: "Icon", }), ], dts: path.resolve(pathSrc, "auto-imports.d.ts"), }), Components({ resolvers: [ // 自动注册图标组件 IconsResolver({ enabledCollections: ["ep"], }), // 自动导入 Element Plus 组件 ElementPlusResolver(), ], dts: path.resolve(pathSrc, "components.d.ts"), }), Icons({ autoInstall: true, }), prismjsPlugin({ languages: "all", }), ], });