Files
sam-react/vite.config.ts
hskwon 33d02b897b feat: 대시보드 레이아웃에 사이드바 메뉴 및 역할 전환 기능 추가
- DashboardLayout에 좌측 사이드바 메뉴 추가 (아이콘 포함)
- 상단 헤더에 역할별 대시보드 전환 드롭다운 추가
- menuStore의 persist 설정에서 menuItems 제외 (icon 함수 직렬화 문제 해결)
- vite.config.ts HMR 설정을 환경별로 조건부 처리 (로컬/도커 환경 분리)
- Lucide React 아이콘 렌더링 패턴 개선 (변수 할당 후 렌더링)

변경 사항:
- vite.config.ts: VITE_DOCKER_ENV 환경변수 기반 HMR 설정
- DashboardLayout.tsx: 사이드바, 메뉴, 역할 드롭다운 UI 구현
- menuStore.ts: partialize 옵션으로 menuItems localStorage 저장 제외
2025-10-17 16:04:34 +09:00

52 lines
1.7 KiB
TypeScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import tailwindcss from '@tailwindcss/vite'
import path from 'path'
// https://vite.dev/config/
export default defineConfig({
plugins: [
react(),
tailwindcss(),
],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
'@/components': path.resolve(__dirname, './src/components'),
'@/pages': path.resolve(__dirname, './src/pages'),
'@/hooks': path.resolve(__dirname, './src/hooks'),
'@/services': path.resolve(__dirname, './src/services'),
'@/stores': path.resolve(__dirname, './src/stores'),
'@/utils': path.resolve(__dirname, './src/utils'),
'@/types': path.resolve(__dirname, './src/types'),
'@/lib': path.resolve(__dirname, './src/lib'),
},
},
server: {
host: '0.0.0.0', // Docker 컨테이너 내 모든 네트워크 인터페이스에서 접근 허용
port: 5173,
strictPort: true,
// 환경별 HMR 설정: Docker 환경에서만 커스텀 설정 사용
hmr: process.env.VITE_DOCKER_ENV === 'true'
? {
clientPort: 80, // HTTP 사용 (nginx가 port 80에서 리스닝)
protocol: 'ws', // HTTP 환경에서는 WebSocket (ws) 사용
host: 'dev.sam.kr', // HMR 연결 시 사용할 호스트
}
: true, // 로컬 환경에서는 기본 HMR 설정 사용
// 파일 감시 설정 (Docker 환경에서 필수)
watch: {
usePolling: true,
interval: 100, // 폴링 간격 (ms)
},
// CORS 설정 (필요한 경우)
cors: true,
// 리버스 프록시를 통한 도메인 접근 허용
allowedHosts: [
'dev.sam.kr',
'localhost',
'127.0.0.1',
'.sam.kr', // 서브도메인 와일드카드
],
},
})