Files
Yi.Framework/Yi.Ai.Vue3/.build/plugins/index.ts

64 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { ConfigEnv, PluginOption } from 'vite';
import path from 'node:path';
import vue from '@vitejs/plugin-vue';
import { visualizer } from 'rollup-plugin-visualizer';
import UnoCSS from 'unocss/vite';
import AutoImport from 'unplugin-auto-import/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
import Components from 'unplugin-vue-components/vite';
import viteCompression from 'vite-plugin-compression';
import envTyped from 'vite-plugin-env-typed';
import createSvgIcon from './svg-icon';
const root = path.resolve(__dirname, '../../');
function plugins({ mode, command }: ConfigEnv): PluginOption[] {
return [
UnoCSS(),
envTyped({
mode,
envDir: root,
envPrefix: 'VITE_',
filePath: path.join(root, 'types', 'import_meta.d.ts'),
}),
vue(),
AutoImport({
imports: ['vue'],
eslintrc: {
enabled: true,
},
resolvers: [ElementPlusResolver()],
dts: path.join(root, 'types', 'auto-imports.d.ts'),
}),
Components({
resolvers: [ElementPlusResolver()],
dts: path.join(root, 'types', 'components.d.ts'),
}),
createSvgIcon(command === 'build'),
// ✅ Gzip 构建产物压缩(仅生产构建)
command === 'build'
&& viteCompression({
verbose: true,
disable: false,
threshold: 10240,
algorithm: 'gzip',
ext: '.gz',
}),
// ✅ 构建分析图(仅生产构建)
command === 'build'
&& visualizer({
filename: './dist/stats.html',
open: false, // 打包后自动打开分析图true 可开启)
gzipSize: true,
brotliSize: true,
}),
];
}
export default plugins;