#!/usr/bin/env node /** * Script de serve pour le radar stand-alone * Remplace "techradar serve" en servant soit build/ soit en lançant le dev server Next.js */ const fs = require('fs'); const path = require('path'); const { execSync } = require('child_process'); const CWD = process.cwd(); const BUILD_DIR = path.join(CWD, 'build'); const RADAR_APP_DIR = path.join(CWD, 'radar-app'); const PORT = process.env.PORT || '3000'; // Mode: 'build' pour servir build/, 'dev' pour lancer Next.js dev const MODE = process.argv[2] || 'build'; if (MODE === 'dev') { // Mode développement: lancer Next.js dev dans radar-app console.log('🚀 Démarrage du serveur de développement Next.js...'); console.log(`📍 URL: http://localhost:${PORT}/`); try { process.chdir(RADAR_APP_DIR); execSync(`npm run dev -- -p ${PORT}`, { stdio: 'inherit' }); } catch (e) { console.error('Erreur lors du démarrage du serveur dev:', e.message); process.exit(1); } } else { // Mode production: servir build/ if (!fs.existsSync(BUILD_DIR)) { console.error(`❌ Dossier build/ introuvable. Lancez d'abord: npm run build`); process.exit(1); } console.log(`🚀 Démarrage du serveur statique sur http://localhost:${PORT}/`); console.log(`📁 Servant: ${BUILD_DIR}`); try { // Utiliser npx serve si disponible, sinon python http.server try { execSync(`npx serve@latest "${BUILD_DIR}" --listen ${PORT}`, { stdio: 'inherit' }); } catch (e) { // Fallback sur python console.log('⚠️ npx serve non disponible, utilisation de python http.server'); process.chdir(BUILD_DIR); execSync(`python3 -m http.server ${PORT}`, { stdio: 'inherit' }); } } catch (e) { console.error('Erreur lors du démarrage du serveur:', e.message); process.exit(1); } }