import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import * as path from 'path';
// eslint-disable-next-line import/no-duplicates
import AutoImport from 'unplugin-auto-import/vite';
// eslint-disable-next-line import/no-duplicates
import autoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
import WindiCSS from 'vite-plugin-windicss';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';

export default defineConfig(({ mode }) => {
    // 根据环境设置不同的代理配置
    const isDev = mode === 'development';
    
    return {
        resolve: {
            // 设置别名
            alias: {
                '~': path.resolve(__dirname, './src'),
                '@': path.resolve(__dirname, './src'),
            },
        },
    plugins: [
        WindiCSS(),
        vue(),
        AutoImport({
            resolvers: [ElementPlusResolver()],
        }),
        autoImport({
            imports: ['vue', 'vue-router', 'pinia'],
            dts: false,
        }),
        Components({
            resolvers: [ElementPlusResolver()],
        }),
        createSvgIconsPlugin({
            iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')],
            symbolId: 'icon-[dir]-[name]',
        }),
    ],
    define: {
        __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'false',
    },
    server: isDev ? {
        port: 8080, // 启动端口
        open: true,
        hmr: {
            // hostManage: '0.0.0.0',
            host: '127.0.0.1',
            //  hostManage: '192.168.0.49',
            port: 8080,
        },
        // 设置 https 代理
        proxy: {
            // 本地开发环境：将前端的 /api 代理到本地后端 Spring Boot 服务
                // 后端默认端口在 application.yml 中为 16200，context-path 为 /api
            '/api': {
                target: 'http://127.0.0.1:16200',
                changeOrigin: true,
            },
            // 如需指向生产环境或测试环境，请按需切换 target：
            // '/api': { target: 'https://cattletrack.aiotagro.com/', changeOrigin: true },
        },
    } : undefined,
    };
});