| 1 | import UnoCSS from 'unocss/vite' |
| 2 | import IconsResolver from 'unplugin-icons/resolver' |
| 3 | import Icons from 'unplugin-icons/vite' |
| 4 | import Components from 'unplugin-vue-components/vite' |
| 5 | import { defineConfig } from 'vite' |
| 6 | import Inspect from 'vite-plugin-inspect' |
| 7 | import { groupIconVitePlugin } from 'vitepress-plugin-group-icons' |
| 8 | import llmstxt from 'vitepress-plugin-llms' |
| 9 | import config, { slidebars } from './.vitepress/config' |
| 10 | |
| 11 | const IS_ROOT_ENGLISH_DOC = config.locales?.root.label.includes('English') || false |
| 12 | |
| 13 | export default defineConfig({ |
| 14 | optimizeDeps: { |
| 15 | exclude: [ |
| 16 | 'vue-demi', |
| 17 | '@vueuse/shared', |
| 18 | '@vueuse/core', |
| 19 | ], |
| 20 | }, |
| 21 | server: { |
| 22 | hmr: { |
| 23 | overlay: false, |
| 24 | }, |
| 25 | }, |
| 26 | plugins: [ |
| 27 | IS_ROOT_ENGLISH_DOC && llmstxt({ |
| 28 | ignoreFiles: [ |
| 29 | 'index.md', |
| 30 | 'README.md', |
| 31 | ], |
| 32 | sidebar: slidebars, |
| 33 | }), |
| 34 | Components({ |
| 35 | dirs: [ |
| 36 | './.vitepress/theme/components', |
| 37 | './node_modules/@slidev/client/builtin', |
| 38 | ], |
| 39 | extensions: ['vue', 'md'], |
| 40 | include: [/\.vue$/, /\.vue\?vue/, /\.md$/, /\.md\?vue/], |
| 41 | resolvers: [ |
| 42 | IconsResolver({ |
| 43 | prefix: '', |
| 44 | }), |
| 45 | ], |
| 46 | }), |
| 47 | Icons({ |
| 48 | defaultStyle: 'display: inline-block;', |
| 49 | }), |
| 50 | Inspect(), |
| 51 | UnoCSS(), |
| 52 | groupIconVitePlugin(), |
| 53 | ], |
| 54 | }) |
| 55 |