index.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import vue from '@vitejs/plugin-vue';
  2. import legacy from '@vitejs/plugin-legacy';
  3. import createUnoCss from './unocss';
  4. import createAutoImport from './auto-import';
  5. import createComponents from './components';
  6. import createIcons from './icons';
  7. import createSvgIconsPlugin from './svg-icon';
  8. import createCompression from './compression';
  9. import createSetupExtend from './setup-extend';
  10. import createI18n from './i18n';
  11. import { ViteImageOptimizer } from 'vite-plugin-image-optimizer';
  12. import path from 'path';
  13. export default (viteEnv: any, isBuild = false): [] => {
  14. const vitePlugins: any = [];
  15. vitePlugins.push(vue());
  16. vitePlugins.push(createUnoCss());
  17. vitePlugins.push(createAutoImport(path));
  18. vitePlugins.push(createComponents(path));
  19. vitePlugins.push(createCompression(viteEnv));
  20. vitePlugins.push(createIcons());
  21. vitePlugins.push(createSvgIconsPlugin(path, isBuild));
  22. vitePlugins.push(createSetupExtend());
  23. vitePlugins.push(createI18n(path));
  24. vitePlugins.push(ViteImageOptimizer());
  25. vitePlugins.push(
  26. legacy({
  27. targets: ['defaults', 'Chrome >= 51'],
  28. additionalLegacyPolyfills: [
  29. 'regenerator-runtime/runtime'
  30. ],
  31. renderLegacyChunks: true,
  32. polyfills: [
  33. 'es.symbol',
  34. 'es.array.filter',
  35. 'es.promise',
  36. 'es.promise.finally',
  37. 'es.object.assign',
  38. 'es.map',
  39. 'es.set',
  40. 'es.array.for-each',
  41. 'es.object.define-properties',
  42. 'es.object.define-property',
  43. 'es.object.get-own-property-descriptor',
  44. 'es.object.get-own-property-descriptors',
  45. 'es.object.keys',
  46. 'es.object.to-string',
  47. 'web.dom-collections.for-each',
  48. 'esnext.global-this',
  49. 'esnext.string.match-all',
  50. 'es.array.iterator',
  51. 'es.string.includes',
  52. 'es.string.starts-with',
  53. 'es.object.values',
  54. ]
  55. })
  56. );
  57. return vitePlugins;
  58. };