import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// https://vite.dev/config/
export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd(), '')
  const isProd = mode === 'production'

  return {
    plugins: [vue()],
    server: {
      host: '0.0.0.0',
      port: 8081,
    },
    css: {
      preprocessorOptions: {
        less: {
          javascriptEnabled: true,
        },
      },
    },
    resolve: {
      alias: {
        '@': path.resolve(__dirname, 'src'),
      },
    },
    // 各字段单独 define，避免对象内 JSON.stringify 被 Vite 二次序列化导致 URL 带引号
    define: {
      'VE_ENV.MODE': JSON.stringify(isProd ? 'production' : 'development'),
      'VE_ENV.SERVER': JSON.stringify(env.VITE_SERVER ?? ''),
      'VE_ENV.PYSERVER': JSON.stringify(env.VITE_PYSERVER ?? ''),
      'VE_ENV.MOCK': JSON.stringify(env.VITE_MOCK ?? 'False'),
    },
  }
})
