import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import compression from 'vite-plugin-compression'
export default defineConfig({
  base: '/',

  plugins: [
    vue(),
    compression({
      ext: '.gz', // 生成的文件扩展名
      compressionOptions: { level: 9 }, // 压缩级别，1-9，越高压缩率越大
      algorithm: 'gzip', // 压缩算法，可选 'gzip' | 'brotli'
      threshold: 51200, // 阈值：小于100kb的文件不压缩（压缩后反而可能变大）
      filter:/\.(js|css|html|svg|json)$/i , // 排除已经压缩过的文件（图片、视频、压缩包本身）
      deleteOriginFile: false, // 不要删除原始源文件，默认false，避免回退问题
    }),
    vueJsx(),
    AutoImport({
      imports: ['vue', 'vue-router', 'pinia'],
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  resolve: {
    alias: { '@': '/src' },
  },
})
