index.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import type { PluginOption } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import vueJsx from '@vitejs/plugin-vue-jsx'
  4. import AutoImport from 'unplugin-auto-import/vite'
  5. import GenerateConfig from 'unplugin-config/vite'
  6. import Components from 'unplugin-vue-components/vite'
  7. import VitePluginPreloadAll from '@mistjs/vite-plugin-preload'
  8. import Unocss from 'unocss/vite'
  9. import AntdvResolver from 'antdv-component-resolver'
  10. import { GLOB_CONFIG_FILE_NAME, OUTPUT_DIR } from './constants'
  11. import { viteBuildInfo } from './vite-build-info'
  12. export function createVitePlugins(env: Record<string, string>) {
  13. const vitePluginList: (PluginOption | PluginOption[])[] = [
  14. vue(),
  15. vueJsx(),
  16. VitePluginPreloadAll(),
  17. AutoImport({
  18. imports: [
  19. 'vue',
  20. 'vue-router',
  21. 'vue-i18n',
  22. '@vueuse/core',
  23. 'pinia',
  24. ],
  25. dts: 'types/auto-imports.d.ts',
  26. dirs: ['src/stores', 'src/composables'],
  27. }),
  28. Components({
  29. resolvers: [AntdvResolver()],
  30. dts: 'types/components.d.ts',
  31. dirs: ['src/components'],
  32. }),
  33. // https://github.com/kirklin/unplugin-config
  34. GenerateConfig({
  35. appName: env.VITE_GLOB_APP_TITLE,
  36. configFile: {
  37. generate: true,
  38. fileName: GLOB_CONFIG_FILE_NAME,
  39. outputDir: OUTPUT_DIR,
  40. },
  41. envVariables: {
  42. prefix: 'VITE_GLOB_',
  43. },
  44. }),
  45. Unocss(),
  46. viteBuildInfo(env.VITE_APP_NAME),
  47. ]
  48. return vitePluginList
  49. }