chore: add comparation

This commit is contained in:
Bright Wu
2023-10-14 21:19:32 +08:00
parent ab08e568e4
commit a7ade4676d
9 changed files with 101 additions and 240 deletions

View File

@@ -1,9 +1,9 @@
import type { PluginOption } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
// import unocss from '@unocss/vite';
// import progress from 'vite-plugin-progress';
// import VueDevtools from 'vite-plugin-vue-devtools';
import unocss from '@unocss/vite';
import progress from 'vite-plugin-progress';
import VueDevtools from 'vite-plugin-vue-devtools';
import pageRoute from '@soybeanjs/vite-plugin-vue-page-route';
import unplugin from './unplugin';
import mock from './mock';
@@ -16,6 +16,44 @@ import pwa from './pwa';
* @param viteEnv - 环境变量配置
*/
export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] {
const plugins = [
vue({
script: {
defineModel: true
}
}),
vueJsx(),
VueDevtools(),
...unplugin(viteEnv),
unocss(),
mock(viteEnv),
progress()
];
if (viteEnv.VITE_VISUALIZER === 'Y') {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
plugins.push(visualizer as PluginOption);
}
if (viteEnv.VITE_COMPRESS === 'Y') {
plugins.push(compress(viteEnv));
}
if (viteEnv.VITE_PWA === 'Y' || viteEnv.VITE_VERCEL === 'Y') {
plugins.push(pwa());
}
if (viteEnv.VITE_SOYBEAN_ROUTE_PLUGIN === 'Y') {
plugins.push(pageRoute());
}
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
return plugins;
}
/**
* vite插件
* @param viteEnv - 环境变量配置
*/
export function setupFarmVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] {
const plugins = [
() => ({
vitePlugin: vue({
@@ -30,7 +68,7 @@ export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | Plugin
filters: ['\\.vue$', '\\\\0.+']
}),
// VueDevtools(),
...unplugin(viteEnv),
...unplugin(viteEnv, true),
// unocss(),
mock(viteEnv)
// progress()

View File

@@ -3,10 +3,10 @@ import IconsResolver from 'unplugin-icons/resolver';
import Components from 'unplugin-vue-components/rollup';
import { NaiveUiResolver } from 'unplugin-vue-components/resolvers';
import { FileSystemIconLoader } from 'unplugin-icons/loaders';
// import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import { getSrcPath } from '../utils';
export default function unplugin(viteEnv: ImportMetaEnv) {
export default function unplugin(viteEnv: ImportMetaEnv, isFarm = false) {
const { VITE_ICON_PREFIX, VITE_ICON_LOCAL_PREFIX } = viteEnv;
const srcPath = getSrcPath();
@@ -33,12 +33,14 @@ export default function unplugin(viteEnv: ImportMetaEnv) {
NaiveUiResolver(),
IconsResolver({ customCollections: [collectionName], componentPrefix: VITE_ICON_PREFIX })
]
})
// createSvgIconsPlugin({
// iconDirs: [localIconPath],
// symbolId: `${VITE_ICON_LOCAL_PREFIX}-[dir]-[name]`,
// inject: 'body-last',
// customDomId: '__SVG_ICON_LOCAL__'
// })
];
}),
isFarm
? null
: createSvgIconsPlugin({
iconDirs: [localIconPath],
symbolId: `${VITE_ICON_LOCAL_PREFIX}-[dir]-[name]`,
inject: 'body-last',
customDomId: '__SVG_ICON_LOCAL__'
})
].filter(Boolean);
}