1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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';
- // @ts-ignore
- import pkg from '../../../package.json';
- import { isSiteMode, ViteEnv, isReportMode, isBuildGzip } from '../../utils';
- import { setupHtmlPlugin } from './html';
- import { setupPwaPlugin } from './pwa';
- import { setupMockPlugin } from './mock';
- // gen vite plugins
- export function createVitePlugins(viteEnv: ViteEnv, mode: 'development' | 'production') {
- const vitePlugins: VitePlugin[] = [];
- // vite-plugin-html
- setupHtmlPlugin(vitePlugins, viteEnv, mode);
- // vite-plugin-pwa
- setupPwaPlugin(vitePlugins, viteEnv, mode);
- // vite-plugin-mock
- setupMockPlugin(vitePlugins, viteEnv, mode);
- // vite-plugin-purge-icons
- vitePlugins.push(PurgeIcons());
- return vitePlugins;
- }
- // gen rollup plugins
- export function createRollupPlugin() {
- const rollupPlugins: rollupPlugin[] = [];
- if (isReportMode()) {
- // rollup-plugin-visualizer
- rollupPlugins.push(visualizer({ filename: './build/.cache/stats.html', open: true }) as Plugin);
- }
- if (isBuildGzip() || isSiteMode()) {
- // rollup-plugin-gizp
- rollupPlugins.push(gzipPlugin());
- }
- return rollupPlugins;
- }
|