index.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * @name createVitePlugins
  3. * @description 封装plugins数组统一调用
  4. */
  5. import type { PluginOption } from 'vite';
  6. import vue from '@vitejs/plugin-vue';
  7. import vueJsx from '@vitejs/plugin-vue-jsx';
  8. import vueSetupExtend from 'vite-plugin-vue-setup-extend';
  9. import { ConfigSvgIconsPlugin } from './svgIcons';
  10. import { AutoRegistryComponents } from './component';
  11. import { AutoImportDeps } from './autoImport';
  12. import { ConfigMockPlugin } from './mock';
  13. import { ConfigCompressPlugin } from './compress';
  14. import { ConfigPagesPlugin } from './pages';
  15. import { ConfigRestartPlugin } from './restart';
  16. import { ConfigProgressPlugin } from './progress';
  17. import { ConfigEruda } from './eruda';
  18. import { ConfigStyleImport } from './styleImport';
  19. import { ConfigImageminPlugin } from './imagemin';
  20. import { ConfigVisualizerConfig } from './visualizer';
  21. export function createVitePlugins(env: ViteEnv, isBuild: boolean) {
  22. const { VITE_USE_MOCK, VITE_USE_ERUDA } = env;
  23. const vitePlugins: (PluginOption | PluginOption[])[] = [
  24. // vue支持
  25. vue(),
  26. // JSX支持
  27. vueJsx(),
  28. // setup语法糖组件名支持
  29. vueSetupExtend(),
  30. ];
  31. // 自动按需引入组件
  32. vitePlugins.push(AutoRegistryComponents());
  33. // 自动按需引入依赖
  34. vitePlugins.push(AutoImportDeps());
  35. // 自动生成路由
  36. vitePlugins.push(ConfigPagesPlugin());
  37. // 开启.gz压缩 rollup-plugin-gzip
  38. vitePlugins.push(ConfigCompressPlugin());
  39. // 监听配置文件改动重启
  40. vitePlugins.push(ConfigRestartPlugin());
  41. // 构建时显示进度条
  42. vitePlugins.push(ConfigProgressPlugin());
  43. //styleImport
  44. vitePlugins.push(ConfigStyleImport());
  45. // eruda
  46. VITE_USE_ERUDA && vitePlugins.push(ConfigEruda());
  47. // rollup-plugin-visualizer
  48. vitePlugins.push(ConfigVisualizerConfig());
  49. // vite-plugin-mock
  50. VITE_USE_MOCK && vitePlugins.push(ConfigMockPlugin(isBuild));
  51. // vite-plugin-svg-icons
  52. vitePlugins.push(ConfigSvgIconsPlugin(isBuild));
  53. if (isBuild) {
  54. // vite-plugin-imagemin
  55. vitePlugins.push(ConfigImageminPlugin());
  56. }
  57. return vitePlugins;
  58. }