index.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import type { PluginOption } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import vueJsx from '@vitejs/plugin-vue-jsx'
  4. import vueLegacy from '@vitejs/plugin-legacy'
  5. import createInspector from './inspector'
  6. import createAutoImport from './auto-import'
  7. import createComponents from './components'
  8. import createSetupExtend from './setup-extend'
  9. import createUnocss from './unocss'
  10. import createSvgIcon from './svg-icon'
  11. import createI18n from './i18n'
  12. import createMock from './mock'
  13. import createLayouts from './layouts'
  14. import createPages from './pages'
  15. import createCompression from './compression'
  16. import createSpritesmith from './spritesmith'
  17. import createBanner from './banner'
  18. export default function createVitePlugins(viteEnv, isBuild = false) {
  19. const vitePlugins: (PluginOption | PluginOption[])[] = [
  20. vue({
  21. reactivityTransform: true,
  22. }),
  23. vueJsx(),
  24. vueLegacy({
  25. renderLegacyChunks: false,
  26. modernPolyfills: [
  27. 'es.array.at',
  28. ],
  29. }),
  30. ]
  31. vitePlugins.push(createInspector())
  32. vitePlugins.push(createAutoImport())
  33. vitePlugins.push(createComponents())
  34. vitePlugins.push(createSetupExtend())
  35. vitePlugins.push(createUnocss())
  36. vitePlugins.push(createSvgIcon(isBuild))
  37. vitePlugins.push(createI18n())
  38. vitePlugins.push(createMock(viteEnv, isBuild))
  39. vitePlugins.push(createLayouts())
  40. vitePlugins.push(createPages())
  41. isBuild && vitePlugins.push(...createCompression(viteEnv))
  42. vitePlugins.push(...createSpritesmith(isBuild))
  43. vitePlugins.push(createBanner())
  44. return vitePlugins
  45. }