vben
2022-01-18 4e4ce944bcab4aaab677112b7cba9d86501e416c
提交 | 用户 | age
07c18d 1 import vue from '@vitejs/plugin-vue';
V 2 import vueJsx from '@vitejs/plugin-vue-jsx';
3 import legacy from '@vitejs/plugin-legacy';
8a3f47 4 import purgeIcons from 'vite-plugin-purge-icons';
5e17cc 5 import windiCSS from 'vite-plugin-windicss';
4e4ce9 6 import VitePluginCertificate from 'vite-plugin-mkcert';
0b0a7c 7 import vueSetupExtend from 'vite-plugin-vue-setup-extend';
99ac30 8 import { configHtmlPlugin } from './html';
V 9 import { configPwaConfig } from './pwa';
10 import { configMockPlugin } from './mock';
993538 11 import { configCompressPlugin } from './compress';
3d1681 12 import { configStyleImportPlugin } from './styleImport';
43503d 13 import { configVisualizerConfig } from './visualizer';
3d1681 14 import { configThemePlugin } from './theme';
de332a 15 import { configImageminPlugin } from './imagemin';
9c2a2a 16 import { configSvgIconsPlugin } from './svgSprite';
173d40 17
85729f 18 export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
f7499c 19   const {
20     VITE_USE_IMAGEMIN,
21     VITE_USE_MOCK,
22     VITE_LEGACY,
23     VITE_BUILD_COMPRESS,
24     VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE,
25   } = viteEnv;
759e53 26
4e4ce9 27   const vitePlugins = [
07c18d 28     // have to
V 29     vue(),
30     // have to
31     vueJsx(),
0b0a7c 32     // support name
V 33     vueSetupExtend(),
4e4ce9 34     VitePluginCertificate({
V 35       source: 'coding',
36     }),
07c18d 37   ];
V 38
5e17cc 39   // vite-plugin-windicss
V 40   vitePlugins.push(windiCSS());
e12c58 41
07c18d 42   // @vitejs/plugin-legacy
884515 43   VITE_LEGACY && isBuild && vitePlugins.push(legacy());
173d40 44
V 45   // vite-plugin-html
99ac30 46   vitePlugins.push(configHtmlPlugin(viteEnv, isBuild));
V 47
9c2a2a 48   // vite-plugin-svg-icons
V 49   vitePlugins.push(configSvgIconsPlugin(isBuild));
da0491 50
ed41e5 51   // vite-plugin-mock
759e53 52   VITE_USE_MOCK && vitePlugins.push(configMockPlugin(isBuild));
173d40 53
V 54   // vite-plugin-purge-icons
8a3f47 55   vitePlugins.push(purgeIcons());
173d40 56
c2f654 57   // vite-plugin-style-import
a9462f 58   vitePlugins.push(configStyleImportPlugin(isBuild));
c2f654 59
99ac30 60   // rollup-plugin-visualizer
43503d 61   vitePlugins.push(configVisualizerConfig());
ed41e5 62
5fca9c 63   // vite-plugin-theme
5b8eb4 64   vitePlugins.push(configThemePlugin(isBuild));
3d1681 65
07c18d 66   // The following plugins only work in the production environment
de332a 67   if (isBuild) {
5fca9c 68     // vite-plugin-imagemin
759e53 69     VITE_USE_IMAGEMIN && vitePlugins.push(configImageminPlugin());
de332a 70
V 71     // rollup-plugin-gzip
f7499c 72     vitePlugins.push(
56a966 73       configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE),
f7499c 74     );
de332a 75
V 76     // vite-plugin-pwa
77     vitePlugins.push(configPwaConfig(viteEnv));
78   }
79
99ac30 80   return vitePlugins;
173d40 81 }