import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'
import fs from 'fs-extra'

// 复制 Monaco Editor 的资源文件
const copyMonacoEditorFiles = () => {
    return {
        name: 'copy-monaco-editor',
        buildStart() {
            const monacoPath = path.resolve(__dirname, 'node_modules/monaco-editor/min/vs')
            const targetPath = path.resolve(__dirname, 'public/monaco-editor/min/vs')
            if (!fs.existsSync(targetPath)) {
                fs.copySync(monacoPath, targetPath)
            }
        }
    }
}

export default defineConfig({
  plugins: [
    react(),
    copyMonacoEditorFiles()
  ],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src')
    }
  },
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          'system': [
            './src/pages/System/User/index.tsx',
            './src/pages/System/Role/index.tsx',
            './src/pages/System/Menu/index.tsx',
            './src/pages/System/Department/index.tsx',
            './src/pages/System/External/index.tsx'
          ]
        }
      }
    }
  },
  server: {
    port: 3000,
    proxy: {
      '/api': {
        target: 'http://localhost:8080',
        changeOrigin: true
      }
    },
    fs: {
      strict: false,
      allow: ['..']
    }
  }
}) 