2022-04-27 19:01:54 +08:00
|
|
|
import type { PluginOption } from 'vite';
|
2022-08-19 12:32:33 +08:00
|
|
|
import vue from '@vitejs/plugin-vue';
|
|
|
|
import vueJsx from '@vitejs/plugin-vue-jsx';
|
2022-08-31 23:29:37 +08:00
|
|
|
import unocss from '@unocss/vite';
|
2022-08-22 12:05:17 +08:00
|
|
|
import progress from 'vite-plugin-progress';
|
2023-06-15 19:25:32 +08:00
|
|
|
import VueDevtools from 'vite-plugin-vue-devtools';
|
2023-01-15 23:32:40 +08:00
|
|
|
import pageRoute from '@soybeanjs/vite-plugin-vue-page-route';
|
2022-04-27 19:01:54 +08:00
|
|
|
import unplugin from './unplugin';
|
2021-12-25 01:23:44 +08:00
|
|
|
import mock from './mock';
|
2022-01-03 22:20:10 +08:00
|
|
|
import visualizer from './visualizer';
|
2022-04-27 19:01:54 +08:00
|
|
|
import compress from './compress';
|
2022-11-14 21:39:55 +08:00
|
|
|
import pwa from './pwa';
|
2022-01-03 22:20:10 +08:00
|
|
|
|
2022-03-05 01:55:21 +08:00
|
|
|
/**
|
2022-04-23 02:21:02 +08:00
|
|
|
* vite插件
|
2022-03-05 01:55:21 +08:00
|
|
|
* @param viteEnv - 环境变量配置
|
|
|
|
*/
|
2022-06-16 01:17:31 +08:00
|
|
|
export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] {
|
2023-05-16 17:32:38 +08:00
|
|
|
const plugins = [
|
|
|
|
vue({
|
|
|
|
script: {
|
|
|
|
defineModel: true
|
|
|
|
}
|
|
|
|
}),
|
|
|
|
vueJsx(),
|
2023-06-15 19:25:32 +08:00
|
|
|
VueDevtools(),
|
2023-05-16 17:32:38 +08:00
|
|
|
...unplugin(viteEnv),
|
|
|
|
unocss(),
|
2023-05-17 07:51:07 +08:00
|
|
|
mock(viteEnv),
|
2023-09-21 01:08:28 +08:00
|
|
|
progress()
|
2023-05-16 17:32:38 +08:00
|
|
|
];
|
2021-05-28 02:22:49 +08:00
|
|
|
|
2022-07-16 00:13:19 +08:00
|
|
|
if (viteEnv.VITE_VISUALIZER === 'Y') {
|
2022-08-29 22:01:40 +08:00
|
|
|
plugins.push(visualizer as PluginOption);
|
2022-01-03 22:20:10 +08:00
|
|
|
}
|
2022-07-16 00:13:19 +08:00
|
|
|
if (viteEnv.VITE_COMPRESS === 'Y') {
|
2022-04-27 19:01:54 +08:00
|
|
|
plugins.push(compress(viteEnv));
|
|
|
|
}
|
2022-12-07 01:27:53 +08:00
|
|
|
if (viteEnv.VITE_PWA === 'Y' || viteEnv.VITE_VERCEL === 'Y') {
|
|
|
|
plugins.push(pwa());
|
|
|
|
}
|
2023-05-31 01:52:57 +08:00
|
|
|
if (viteEnv.VITE_SOYBEAN_ROUTE_PLUGIN === 'Y') {
|
|
|
|
plugins.push(pageRoute());
|
|
|
|
}
|
2021-05-28 02:22:49 +08:00
|
|
|
|
2022-01-03 22:20:10 +08:00
|
|
|
return plugins;
|
|
|
|
}
|