// https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ compatibilityDate: '2024-12-25', devtools: { enabled: true }, // SSR 비활성화 (SPA 모드) ssr: false, // 디렉토리 커스터마이징 dir: { pages: 'frontend' }, serverDir: 'backend', // 컴포넌트 경로 components: [ { path: '~/frontend/components', pathPrefix: false } ], // composables 경로 imports: { dirs: ['frontend/composables'] }, app: { head: { title: 'OSOLIT Monitor - Network Status', meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { name: 'description', content: 'Global Network Status Monitoring Dashboard' } ], link: [ { rel: 'preconnect', href: 'https://fonts.googleapis.com' }, { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' }, { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600&display=swap' } ] } }, css: ['~/frontend/assets/css/main.css'], // 서버 설정 nitro: { preset: 'node-server', // WebSocket 실험적 기능 활성화 experimental: { websocket: true }, // 네이티브 모듈은 번들링하지 않고 외부 모듈로 처리 externals: { inline: [] }, // rollup에서 external로 처리 rollupConfig: { external: ['pg'] }, // 플러그인 등록 plugins: [ '~/backend/plugins/pubnet-init.ts', '~/backend/plugins/privnet-init.ts' ] }, // Vite 설정 (네이티브 모듈) vite: { optimizeDeps: { exclude: ['pg'] } }, // 환경변수 설정 runtimeConfig: { // 서버 전용 (NUXT_로 시작하는 환경변수 자동 로드) dbHost: process.env.DB_HOST || 'localhost', dbPort: process.env.DB_PORT || '5432', dbName: process.env.DB_NAME || 'osolit_monitor', dbUser: process.env.DB_USER || 'postgres', dbPassword: process.env.DB_PASSWORD || '', autoStartScheduler: process.env.AUTO_START_SCHEDULER || 'false', // 클라이언트 공개 public: { nodeEnv: process.env.NODE_ENV || 'development' } } })