import {fileURLToPath, URL} from 'node:url'
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 Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import vue from '@vitejs/plugin-vue'
import Inspect from 'vite-plugin-inspect'

export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      //自动导入vue相关函数
      imports: ['vue', 'vue-router'],

      resolvers: [
        ElementPlusResolver(),
        //自动导入图标组件
        IconsResolver({
          prefix: 'Icon',
        }),
      ],
    }),
    Components({
      resolvers: [
        // 自动注册图标组件
        IconsResolver({
          enabledCollections: ['ep'],
        }),
        //自动导入组件
        ElementPlusResolver()
      ],
    }),
    Icons({
      autoInstall: true,
    }),
    Inspect(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  build: {
    minify: 'esbuild',
    terserOptions: {
      compress: {
        drop_console: false, // 生产环境移除log
        drop_debugger: false // 生产环境禁用debugger
      }
    }
  },
  server: {
    host: '0.0.0.0',
    port: 8888,
    strictPort: false,
    open: true,
    proxy: {
      // '/api/tunnel': {
      //   // target: 'http://gateway.feashow.cn',
      //   target: 'http://192.168.31.175:8000',
      //   changeOrigin: true,
      //   rewrite: (path) => path.replace(/^\/api/, ''),
      // },
      // '/api/admin': {
      //   // target: 'http://gateway.feashow.cn',
      //   target: 'http://192.168.31.175:8000',
      //   changeOrigin: true,
      //   rewrite: (path) => path.replace(/^\/api/, ''),
      // },
      '/api': {
        target: 'http://web-tunnel.feashow.com/api',
        // target: 'http://192.168.31.175:8000',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
      '/socket': {
        target: 'ws://web-tunnel.feashow.com/api/notice-ws/notice',
        ws: true
      }
    }
  }
})
