장바구니 담기 -> DB 저장 전체 플로우 구현 및 검증 완료. - useCartSync 훅 신규: DB(cart_items) <-> 로컬 상태 동기화, dirty check, 일괄 저장 - pop-button cart 프리셋: 배지 표시, 저장 트리거, 확인 모달, 3색 데이터 흐름 시각화 - pop-card-list: 담기/취소 UI, cart_save_trigger 수신 시 saveToDb 실행 - 선택적 컬럼 저장: RowDataMode(all/selected) + 연결 기반 자동 컬럼 로딩 - ComponentEditorPanel: allComponents/connections/componentId를 ConfigPanel에 전달 - connectionMeta: cart_save_trigger/cart_updated/cart_save_completed 이벤트 정의 - ConnectionEditor: 이벤트 타입 연결 구분 (데이터 vs 이벤트) - types.ts: CartItemWithId, CartSyncStatus, CartButtonConfig 등 타입 추가 - 접근성: NumberInputModal/PackageUnitModal에 DialogTitle 추가 Made-with: Cursor
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
/** @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 환경: 컨테이너 이름(pms-backend-mac) 또는 SERVER_API_URL 사용
|
|
// 로컬 개발: http://127.0.0.1:8080 사용
|
|
async rewrites() {
|
|
// Docker 컨테이너 내부에서는 컨테이너 이름으로 통신
|
|
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: {
|
|
// Docker 컨테이너 내부에서는 컨테이너 이름으로 통신
|
|
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL || "http://localhost:8080/api",
|
|
},
|
|
};
|
|
|
|
export default nextConfig;
|