Files
Regisflow/server/prod-start.js
T
michaelschal 07baa59225 Ensure the application runs correctly in the production environment
Implements a Node.js 18 compatibility fix by patching `dist/index.js` and creating `server/prod-start.js` to replace `import.meta.dirname` with static paths, resolving a runtime error.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 91318273-c764-4fd4-be04-bdc12c38af32
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/99451107-d8a0-4f61-81e0-cae481285260.jpg
2025-07-09 22:21:49 +00:00

31 lines
1.1 KiB
JavaScript

#!/usr/bin/env node
// Polyfill pour import.meta.dirname dans Node.js 18
import { fileURLToPath } from 'url';
import path from 'path';
import fs from 'fs';
// Obtenir le répertoire courant
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const projectRoot = path.resolve(__dirname, '..');
// Lire le fichier dist/index.js et remplacer import.meta.dirname
const distPath = path.join(projectRoot, 'dist', 'index.js');
let distContent = fs.readFileSync(distPath, 'utf-8');
// Remplacer toutes les instances de import.meta.dirname par une valeur statique
const replacement = `"${projectRoot.replace(/\\/g, '\\\\')}"`;
distContent = distContent.replace(/import\.meta\.dirname/g, replacement);
// Aussi corriger les chemins pour le serveur statique
distContent = distContent.replace(/path3\.resolve\(\s*import\.meta\.dirname,\s*"public"\s*\)/g,
`path3.resolve("${projectRoot.replace(/\\/g, '\\\\')}", "public")`);
// Écrire le fichier modifié
fs.writeFileSync(distPath, distContent);
console.log('✅ Node.js 18 compatibility fix applied');
// Démarrer l'application
import('../dist/index.js').catch(console.error);