/// import path from 'node:path' import { defineConfig } from 'vite' import Vue from '@vitejs/plugin-vue' import Pages from 'vite-plugin-pages' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import AutoImport from 'unplugin-auto-import/vite' import WindiCSS from 'vite-plugin-windicss' import VueMacros from 'unplugin-vue-macros/vite' export default defineConfig({ resolve: { alias: { '~/': `${path.resolve(__dirname, 'src')}/`, }, }, plugins: [ VueMacros({ defineOptions: false, defineModels: false, plugins: { vue: Vue({ script: { propsDestructure: true, defineModel: true, }, }), }, }), // https://github.com/hannoeru/vite-plugin-pages Pages(), // https://github.com/antfu/unplugin-auto-import AutoImport({ imports: [ 'vue', 'vue/macros', 'vue-router', '@vueuse/core', ], dts: true, dirs: [ './src/composables', './src/request', './src/utils', ], vueTemplate: true, resolvers: [ ElementPlusResolver(), ], }), // https://github.com/antfu/vite-plugin-components Components({ dirs: ['src/components/'], // allow auto load markdown components under `./src/components/` extensions: ['vue', 'md'], // allow auto import and register components used in markdown include: [/\.vue$/, /\.vue\?vue/, /\.md$/], resolvers: [ElementPlusResolver({ importStyle: 'sass' })], }), // https://github.com/antfu/unocss // see uno.config.ts for config WindiCSS(), ], // https://github.com/vitest-dev/vitest test: { environment: 'jsdom', }, })