- 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 저장 제외
52 lines
1.7 KiB
TypeScript
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', // 서브도메인 와일드카드
|
|
],
|
|
},
|
|
}) |