2025-02-26 16:31:59 +08:00
|
|
|
import UnoCssIcons from '@unocss/preset-icons';
|
|
|
|
import vue from '@vitejs/plugin-vue';
|
|
|
|
import vueJsx from '@vitejs/plugin-vue-jsx';
|
|
|
|
import { presetIcons, presetUno } from 'unocss';
|
|
|
|
import UnoCSS from 'unocss/vite';
|
|
|
|
import type { PluginOption } from 'vite';
|
|
|
|
import removeConsole from 'vite-plugin-remove-console';
|
|
|
|
import Inspector from 'vite-plugin-vue-inspector';
|
|
|
|
|
|
|
|
import { useCDN } from './cdn';
|
|
|
|
import { viteConsoleLog } from './info';
|
|
|
|
import { compressPack, report } from './utils';
|
2025-02-24 18:23:33 +08:00
|
|
|
|
2025-02-24 22:45:14 +08:00
|
|
|
export const plugins = (mode): PluginOption[] => {
|
2025-02-25 23:14:50 +08:00
|
|
|
return [
|
|
|
|
vue(),
|
|
|
|
vueJsx(),
|
|
|
|
Inspector(),
|
|
|
|
report(),
|
|
|
|
removeConsole(),
|
|
|
|
useCDN(mode),
|
|
|
|
viteConsoleLog(mode),
|
|
|
|
UnoCSS({
|
|
|
|
hmrTopLevelAwait: false,
|
|
|
|
inspector: true, // 控制台是否打印 UnoCSS inspector
|
|
|
|
presets: [
|
|
|
|
presetIcons({
|
|
|
|
extraProperties: {
|
2025-02-26 16:31:59 +08:00
|
|
|
display: 'inline-block',
|
|
|
|
'vertical-align': 'middle',
|
2025-02-25 23:14:50 +08:00
|
|
|
},
|
|
|
|
}),
|
|
|
|
UnoCssIcons({
|
2025-02-26 16:31:59 +08:00
|
|
|
prefix: 'i-',
|
2025-02-25 23:14:50 +08:00
|
|
|
extraProperties: {
|
2025-02-26 16:31:59 +08:00
|
|
|
display: 'inline-block',
|
2025-02-25 23:14:50 +08:00
|
|
|
},
|
|
|
|
}),
|
|
|
|
presetUno(),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
compressPack(mode),
|
|
|
|
];
|
2025-02-24 22:45:14 +08:00
|
|
|
};
|