/** @type {import('next').NextConfig} */ const nextConfig = { // Docker 빌드 최적화 output: "standalone", // ESLint 빌드 시 무시 (프로덕션 빌드 성공을 위해) eslint: { ignoreDuringBuilds: true, }, // TypeScript 오류도 무시 (필요한 경우) typescript: { ignoreBuildErrors: true, }, // 실험적 기능 활성화 experimental: { // 메모리 사용량 최적화 (Next.js 15+) webpackMemoryOptimizations: true, }, // API 프록시 설정 - 백엔드로 요청 전달 // Docker 환경: SERVER_API_URL=http://backend:3001 사용 // 로컬 개발: http://localhost:8080 사용 async rewrites() { const backendUrl = process.env.SERVER_API_URL || "http://localhost:8080"; return [ { source: "/api/:path*", destination: `${backendUrl}/api/:path*`, }, ]; }, // 개발 환경에서 CORS 처리 async headers() { return [ { source: "/api/:path*", headers: [ { key: "Access-Control-Allow-Origin", value: "*" }, { key: "Access-Control-Allow-Methods", value: "GET,POST,PUT,DELETE,OPTIONS" }, { key: "Access-Control-Allow-Headers", value: "Content-Type, Authorization" }, ], }, ]; }, // 환경 변수 (런타임에 읽기) env: { // 항상 명시적으로 백엔드 포트(8080)를 지정 NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL || "http://localhost:8080/api", }, }; export default nextConfig;