vehicle-monitor/build/plugins.ts

62 lines
1.5 KiB
TypeScript
Raw Normal View History

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';
2025-03-02 22:46:59 +08:00
import { presetIcons } from 'unocss';
2025-02-26 16:31:59 +08:00
import UnoCSS from 'unocss/vite';
import type { PluginOption } from 'vite';
2025-02-28 20:14:37 +08:00
import { vitePluginFakeServer } from 'vite-plugin-fake-server';
2025-02-26 16:31:59 +08:00
import removeConsole from 'vite-plugin-remove-console';
import Inspector from 'vite-plugin-vue-inspector';
import { useCDN } from './cdn';
import { viteConsoleLog } from './info';
2025-02-28 20:14:37 +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[] => {
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({
2025-03-02 22:49:11 +08:00
prefix: '',
2025-02-25 23:14:50 +08:00
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-03-02 22:49:11 +08:00
prefix: '',
2025-02-25 23:14:50 +08:00
extraProperties: {
2025-02-26 16:31:59 +08:00
display: 'inline-block',
2025-03-02 22:49:11 +08:00
'vertical-align': 'middle',
2025-02-25 23:14:50 +08:00
},
}),
],
}),
compressPack(mode),
2025-02-28 20:14:37 +08:00
useMock(mode),
2025-02-25 23:14:50 +08:00
];
2025-02-24 22:45:14 +08:00
};
2025-02-28 20:14:37 +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;
};