import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import path from 'path'
import AutoImport from 'unplugin-auto-import/vite'
import h5ProdEffectPlugin from 'uni-vite-plugin-h5-prod-effect'
import legacy from '@vitejs/plugin-legacy'
import viteCompression from 'vite-plugin-compression'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    uni(),
    AutoImport({
      imports: [
        'vue',
        'uni-app'
      ],
      dirs: [
        'src/utils',
        'src/hooks',
        'src/stores/**',
        'src/wxs/**',
        'src/lang'
      ],
      dts: 'src/auto-imports.d.ts',
      eslintrc: {
        enabled: true
      }
    }),
    // 对h5 production环境打包时的特殊处理，否则uni-crazy-router在这个环境会异常
    h5ProdEffectPlugin()
  ].concat(process.env.UNI_PLATFORM === 'h5' ? [
    legacy({
      // 兼容浏览器列表
      targets: ['Android >= 7', 'chrome >= 51', 'firefox >= 54', 'ios >= 10']
    }),
    viteCompression({
      threshold: 1000
    })
  ] : []),
  server: {
    host: true,
    port: 80,
    open: true
  },
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src')
    }
  },
  build: {
    minify: 'terser'
  }
})
