bunny-web-template/build/plugins.ts

61 lines
1.5 KiB
TypeScript
Raw Normal View History

import UnoCssIcons from '@unocss/preset-icons';
2025-02-24 22:45:14 +08:00
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';
2025-02-27 22:37:19 +08:00
import { vitePluginFakeServer } from 'vite-plugin-fake-server';
2025-02-24 22:45:14 +08:00
import removeConsole from 'vite-plugin-remove-console';
import Inspector from 'vite-plugin-vue-inspector';
2025-02-24 22:45:14 +08:00
import { useCDN } from './cdn';
import { viteConsoleLog } from './info';
2025-02-27 22:37:19 +08:00
import { compressPack, report, wrapperEnv } from './utils';
2025-02-24 18:23:33 +08:00
2025-02-24 22:45:14 +08:00
export const plugins = (mode): PluginOption[] => {
return [
vue(),
vueJsx(),
Inspector(),
report(),
removeConsole(),
useCDN(mode),
viteConsoleLog(mode),
UnoCSS({
hmrTopLevelAwait: false,
inspector: true, // 控制台是否打印 UnoCSS inspector
presets: [
presetIcons({
extraProperties: {
display: 'inline-block',
'vertical-align': 'middle',
},
}),
UnoCssIcons({
prefix: 'i-',
extraProperties: {
display: 'inline-block',
},
}),
presetUno(),
],
}),
compressPack(mode),
2025-02-27 22:37:19 +08:00
useMock(mode),
];
2025-02-24 22:45:14 +08:00
};
2025-02-27 22:37:19 +08:00
/** MOCK 服务 */
const useMock = (mode) => {
const { VITE_MOCK_DEV_SERVER } = wrapperEnv(mode);
return VITE_MOCK_DEV_SERVER
? vitePluginFakeServer({
logger: true,
include: 'mock',
infixName: false,
enableProd: true, // 线上支持mock
})
: null;
};