Files
sam-react-prod/next.config.ts
권혁성 13249384e2 feat: [부서관리] 기능 보완 - 필드 확장, 검색/필터, UI 개선
- Department 타입에 code, description, isActive, sortOrder 필드 추가
- DepartmentDialog: Zod + react-hook-form 폼 검증 (5개 필드)
- DepartmentToolbar: 상태 필터(전체/활성/비활성) + 검색 기능
- DepartmentTree: 트리 필터링 (검색어 + 상태)
- DepartmentTreeItem: 코드 Badge, 부서명 볼드, 설명 표시, 체크박스 크기 조정
- convertApiToLocal에서 누락 필드 매핑 복원
2026-03-13 00:30:09 +09:00

48 lines
1.4 KiB
TypeScript

import type { NextConfig } from "next";
import createNextIntlPlugin from 'next-intl/plugin';
const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts');
const nextConfig: NextConfig = {
reactStrictMode: false, // 🧪 TEST: Strict Mode 비활성화로 중복 요청 테스트
turbopack: {}, // ✅ CRITICAL: Next.js 15 + next-intl compatibility
allowedDevOrigins: ['dev.sam.kr', '192.168.0.*'], // 로컬 도메인 + 네트워크 기기 접속 허용
serverExternalPackages: ['puppeteer'], // PDF 생성용 - Webpack 번들 제외
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'placehold.co',
},
],
},
experimental: {
serverActions: {
bodySizeLimit: '10mb', // 이미지 업로드를 위한 제한 증가
},
},
typescript: {
ignoreBuildErrors: false,
},
eslint: {
ignoreDuringBuilds: true,
},
// Capacitor 패키지는 모바일 앱 전용 - 웹 빌드에서 제외
webpack: (config, { isServer }) => {
// macOS 26 호환성: webpack 캐시 비활성화 (rename ENOENT 방지)
config.cache = false;
if (!isServer) {
config.resolve.fallback = {
...config.resolve.fallback,
'@capacitor/core': false,
'@capacitor/push-notifications': false,
'@capacitor/app': false,
};
}
return config;
},
};
export default withNextIntl(nextConfig);