40 lines
963 B
TypeScript
40 lines
963 B
TypeScript
import type { PluginOption } from 'vite';
|
|
import vue from '@vitejs/plugin-vue';
|
|
import vueJsx from '@vitejs/plugin-vue-jsx';
|
|
import unocss from '@unocss/vite';
|
|
import { VitePWA } from 'vite-plugin-pwa';
|
|
import progress from 'vite-plugin-progress';
|
|
import html from './html';
|
|
import unplugin from './unplugin';
|
|
import mock from './mock';
|
|
import visualizer from './visualizer';
|
|
import compress from './compress';
|
|
import soybeanjs from './soybeanjs';
|
|
|
|
/**
|
|
* vite插件
|
|
* @param viteEnv - 环境变量配置
|
|
*/
|
|
export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] {
|
|
const plugins = [
|
|
vue(),
|
|
vueJsx(),
|
|
VitePWA(),
|
|
html(viteEnv),
|
|
...unplugin(viteEnv),
|
|
unocss(),
|
|
mock,
|
|
progress(),
|
|
soybeanjs()
|
|
];
|
|
|
|
if (viteEnv.VITE_VISUALIZER === 'Y') {
|
|
plugins.push(visualizer as PluginOption);
|
|
}
|
|
if (viteEnv.VITE_COMPRESS === 'Y') {
|
|
plugins.push(compress(viteEnv));
|
|
}
|
|
|
|
return plugins;
|
|
}
|