UNPKG

@voya-kit/vite-config

Version:

Voya vite config

54 lines (42 loc) 1.33 kB
import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import { type PluginOption } from 'vite'; import { createAppConfigPlugin } from './appConfig'; import { configCompressPlugin } from './compress'; import { configHtmlPlugin } from './html'; import { configVisualizerConfig } from './visualizer'; import { configVersionPlugin } from './version'; interface Options { isBuild: boolean; root: string; compress: string; enableMock?: boolean; enableAnalyze?: boolean; } async function createPlugins( { isBuild, root, compress, enableAnalyze }: Options, lastBuildTime: string, ) { const vitePlugins: (PluginOption | PluginOption[])[] = [vue(), vueJsx()]; const appConfigPlugin = await createAppConfigPlugin({ root, isBuild }); vitePlugins.push(appConfigPlugin); // vite-plugin-html vitePlugins.push(configHtmlPlugin({ isBuild })); // vite-plugin-version vitePlugins.push(configVersionPlugin({ lastBuildTime })); // The following plugins only work in the production environment if (isBuild) { // rollup-plugin-gzip vitePlugins.push( configCompressPlugin({ compress, }), ); } // rollup-plugin-visualizer if (enableAnalyze) { vitePlugins.push(configVisualizerConfig()); } return vitePlugins; } export { createPlugins };