refactor: projet stand-alone sans dépendance aoe_technology_radar
- Intégration du code source du framework dans radar-app/ (vendoring) - Suppression de la dépendance npm aoe_technology_radar - Création de scripts build-radar.js et serve-radar.js pour remplacer le CLI techradar - Adaptation de tous les scripts et Docker pour utiliser radar-app/ au lieu de .techradar - Refactorisation complète de Dockerfile.business - Mise à jour de la documentation (architecture, déploiement, développement) - Mise à jour de .gitignore pour ignorer les artefacts de build de radar-app/ - Ajout de postcss dans les dépendances Docker pour le build Next.js Le projet est maintenant complètement indépendant du package externe. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
53
scripts/serve-radar.js
Executable file
53
scripts/serve-radar.js
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user