import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import vueDevTools from 'vite-plugin-vue-devtools' import tailwindcss from '@tailwindcss/vite' import VueRouter from 'unplugin-vue-router/vite' import { VueRouterAutoImports } from 'unplugin-vue-router' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers' // https://vite.dev/config/ export default defineConfig({ plugins: [ // VueRouter 必须放在 vue() 之前 VueRouter({ routesFolder: 'src/pages', dts: 'src/typed-router.d.ts', }), vue(), vueJsx(), vueDevTools(), tailwindcss(), // 自动导入 Vue API、VueRouter API 等 AutoImport({ imports: [ 'vue', 'pinia', VueRouterAutoImports, { 'ant-design-vue': [ 'message', 'notification', 'Modal', ], }, ], dts: 'src/auto-imports.d.ts', dirs: [ 'src/stores', 'src/composables', ], vueTemplate: true, }), // 自动导入组件 Components({ resolvers: [ AntDesignVueResolver({ importStyle: false, // 使用 CSS,不导入 less }), ], dts: 'src/components.d.ts', dirs: ['src/components'], }), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, }, })