123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import type { Plugin as VitePlugin } from 'vite';
- import type { Plugin as rollupPlugin } from 'rollup';
- import PurgeIcons from 'vite-plugin-purge-icons';
- import visualizer from 'rollup-plugin-visualizer';
- import gzipPlugin from './gzip/index';
- import pkg from '../../../package.json';
- import { isProdFn, isSiteMode, ViteEnv, isReportMode, isBuildGzip } from '../../utils';
- import { setupHtmlPlugin } from './html';
- import { setupPwaPlugin } from './pwa';
- import { setupMockPlugin } from './mock';
- export function createVitePlugins(viteEnv: ViteEnv) {
- const vitePlugins: VitePlugin[] = [];
-
- setupHtmlPlugin(vitePlugins, viteEnv);
-
- setupPwaPlugin(vitePlugins, viteEnv);
-
- setupMockPlugin(vitePlugins, viteEnv);
-
- vitePlugins.push(PurgeIcons());
- return vitePlugins;
- }
- export function createRollupPlugin() {
- const rollupPlugins: rollupPlugin[] = [];
- if (!isProdFn() && isReportMode()) {
-
- rollupPlugins.push(visualizer({ filename: './build/.cache/stats.html', open: true }) as Plugin);
- }
- if (!isProdFn() && (isBuildGzip() || isSiteMode())) {
-
- rollupPlugins.push(gzipPlugin());
- }
- return rollupPlugins;
- }
|