Le fléau le plus redouté en ingénierie logicielle est le fameux « Pourtant, ça marchait sur ma machine ! ». Avant toute tentative de mise en production, vous devez auditer rigoureusement votre projet en local dans des conditions identiques à celles du serveur cible.
Ne déployez jamais sans avoir testé npm run build localement pour valider le bundler (Vite, Webpack, esbuild).
Tester les fichiers minifiés du dossier dist/ avec un serveur statique local (npx serve ou preview).
Windows/macOS ignorent souvent les majuscules/minuscules dans les imports. Les serveurs Linux crasheront immédiatement.
Aucun fichier non suivi, aucun secret exposé, et la branche de production parfaitement alignée.
Cochez les vérifications que vous avez effectuées en local pour calculer votre Score de Sérénité de Déploiement :
Si omis : Des fichiers créés localement ne seront pas présents sur le serveur distant.
git statusSi omis : Échec immédiat de la CI/CD ou du webhook hébergeur (erreur TypeScript / Minification).
npm run buildSi omis : Routage SPA brisé (écrans blancs en rechargeant la page) ou chemins d'images 404.
npx serve -s distSi omis : Fuite critique de vos mots de passe de base de données ou clés API sur GitHub.
git check-ignore -v .envSi omis : Toutes les requêtes API des vrais utilisateurs échoueront.
grep -rn "localhost" src/ || echo "OK"Si omis : Régression majeure déployée en production sans alerte préalable.
npm test -- --watch=false Sur Windows ou macOS par défaut, importer ./components/Navbar alors que le fichier s'appelle navbar.tsx fonctionne sans broncher.
Une requête fetch('http://localhost:5000/api') dans votre code frontend fonctionnera sur votre machine car votre navigateur contacte votre propre PC.
net::ERR_CONNECTION_REFUSED. Placer une bibliothèque requise au runtime (comme express, cors ou dotenv) dans la section devDependencies de votre package.json.
npm install --omit=dev en production, le serveur plantera avec Cannot find module 'express'. Pour avoir la certitude absolue que votre projet peut être déployé sur un serveur distant sans dépendance fantôme, exécutez ces commandes dans un dossier temporaire :
# 1. Créez un répertoire temporaire vierge
mkdir /tmp/test-deploy && cd /tmp/test-deploy
# 2. Clonez votre propre dépôt Git comme le ferait la plateforme d'hébergement
git clone https://github.com/votre-compte/votre-projet.git .
# 3. Installez strictement les dépendances du fichier package-lock.json
npm ci
# 4. Exécutez le build de production
npm run build
# 5. Lancez l'application en mode production
# Pour une API backend :
NODE_ENV=production npm start
# Pour un frontend statique :
npx serve -s dist