import path from 'node:path' import tailwindcss from '@tailwindcss/vite' import react from '@vitejs/plugin-react' import { defineConfig } from 'vite' export default defineConfig(() => { // Docker on macOS/Windows에서 파일 변경 감지를 위해 polling 필요 // CHOKIDAR_USEPOLLING=true 환경변수가 있을 때만 켬 (로컬 dev에선 비활성) const usePolling = process.env.CHOKIDAR_USEPOLLING === 'true' // Docker 안에서 dev 서버가 돌면 호스트의 localhost는 host.docker.internal로 접근해야 함 // VITE_API_TARGET 환경변수로 오버라이드 가능 const apiTarget = process.env.VITE_API_TARGET ?? (usePolling ? 'http://host.docker.internal:8001' : 'http://localhost:8001') return { plugins: [react(), tailwindcss()], resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, server: { port: 3000, host: '0.0.0.0', watch: usePolling ? { usePolling: true, interval: 300 } : undefined, proxy: { '/api': { target: apiTarget, changeOrigin: true, }, }, }, } })