import { defineConfig } from 'vite' import { resolve } from 'node:path' import vue from '@vitejs/plugin-vue' import Components from 'unplugin-vue-components/vite' import AutoImport from 'unplugin-auto-import/vite' import devtoolsJson from 'vite-plugin-devtools-json'; import VueRouter from 'unplugin-vue-router/vite' import Layouts from 'vite-plugin-vue-layouts'; import { VueRouterAutoImports } from 'unplugin-vue-router' import { unheadVueComposablesImports } from '@unhead/vue' import { AntDesignXVueResolver } from 'ant-design-x-vue/resolver'; import { MazComponentsResolver, MazDirectivesResolver, MazModulesResolver } from 'maz-ui/resolvers' import { MazIconsResolver } from '@maz-ui/icons/resolvers' // https://vite.dev/config/ export default defineConfig({ cacheDir: '../../node_modules/.vite', resolve: { alias: { '@': resolve(__dirname, 'src') }, }, build: { emptyOutDir: true, }, // https://github.com/posva/unplugin-vue-router/discussions/349#discussioncomment-9043123 ssr: { noExternal: process.env.NODE_ENV === 'development' ? ['vue-router'] : [] }, css: { preprocessorOptions: { "scss": { additionalData: `@use "@/assets/styles/scss/_global.scss" as *;\n` } } }, plugins: [ devtoolsJson(), VueRouter({ root: resolve(__dirname), dts: 'src/typed-router.d.ts', }), vue(), Layouts({ defaultLayout: "base" }), Components({ dts: true, dirs: ['src/components', '../../internal/x/components'], excludeNames: [/^\_.+/], resolvers: [ AntDesignXVueResolver(), MazIconsResolver(), MazComponentsResolver(), MazDirectivesResolver(), ], }), AutoImport({ dts: true, dtsMode: "overwrite", resolvers: [MazModulesResolver()], ignore: ["**/_*/**/*"], imports: ['vue', 'vue-router', 'pinia', VueRouterAutoImports, unheadVueComposablesImports], dirs: ['./src/composables/**/*', '../../internal/x/composables/**', "./src/store/**/*"], vueTemplate: true, }), ], })