vben
2021-01-18 c2f6542b48abb85b2c80d13a36882899b11c140b
提交 | 用户 | age
99ac30 1 import type { Plugin } from 'vite';
173d40 2
V 3 import PurgeIcons from 'vite-plugin-purge-icons';
4
5 import visualizer from 'rollup-plugin-visualizer';
6
06e1d3 7 // @ts-ignore
V 8 import pkg from '../../../package.json';
99ac30 9 import { ViteEnv, isReportMode } from '../../utils';
V 10 import { configHtmlPlugin } from './html';
11 import { configPwaConfig } from './pwa';
12 import { configMockPlugin } from './mock';
13 import { configGzipPlugin } from './gzip';
c2f654 14 import { configStyleImportConfig } from './style-import';
173d40 15
V 16 // gen vite plugins
99ac30 17 export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean, mode: string) {
V 18   const vitePlugins: (Plugin | Plugin[])[] = [];
173d40 19
V 20   // vite-plugin-html
99ac30 21   vitePlugins.push(configHtmlPlugin(viteEnv, isBuild));
V 22
ed41e5 23   // vite-plugin-pwa
99ac30 24   vitePlugins.push(configPwaConfig(viteEnv, isBuild));
V 25
ed41e5 26   // vite-plugin-mock
99ac30 27   vitePlugins.push(configMockPlugin(viteEnv, isBuild));
173d40 28
V 29   // vite-plugin-purge-icons
30   vitePlugins.push(PurgeIcons());
31
c2f654 32   // vite-plugin-style-import
V 33   vitePlugins.push(configStyleImportConfig());
34
99ac30 35   // rollup-plugin-gzip
V 36   vitePlugins.push(configGzipPlugin(isBuild));
173d40 37
99ac30 38   // rollup-plugin-visualizer
bd7b53 39   if (isReportMode()) {
99ac30 40     vitePlugins.push(visualizer({ filename: './build/.cache/stats.html', open: true }) as Plugin);
ed41e5 41   }
V 42
99ac30 43   return vitePlugins;
173d40 44 }