Comprenez le rôle capital de la commande de compilation transmise à votre hébergeur cloud : cycle d'exécution dans le conteneur distant, gestion de la mémoire Node.js et chaînage des étapes de vérification.
L'instruction shell exécutée par le conteneur d'intégration pour générer les fichiers de production (ex. npm run build).
Avant la commande de build, la plateforme installe toujours automatiquement les dépendances selon package-lock.json.
Résolution des erreurs fatales de mémoire (OOM) via la variable NODE_OPTIONS="--max-old-space-size=4096".
Possibilité d'exécuter des tests ou linters avant le build : npm run test:ci && npm run build.
[Cloud Builder] Initializing build container (Linux Ubuntu 22.04 LTS)... [Cloud Builder] Node.js version detected: v20.12.2 [Cloud Builder] Cloning repository from GitHub (commit 7a93f1)... [Cloud Builder] Executing dependency install: npm ci added 842 packages in 12.4s [Cloud Builder] Executing configured Build Command: npm run build > mon-projet@1.0.0 build > tsc -b && vite build vite v5.2.0 building for production... ✓ 482 modules transformed. dist/index.html 0.82 kB │ gzip: 0.42 kB dist/assets/index-7a2e81.css 9.41 kB │ gzip: 2.70 kB dist/assets/index-b10c92.js 172.50 kB │ gzip: 52.80 kB ✓ built in 1.48s [Cloud Builder] Build completed successfully with exit code 0. [Cloud Builder] Publishing output directory: dist/
Quand vous poussez votre code sur GitHub, l'hébergeur (Vercel, Netlify, Render) ne dispose que de vos fichiers sources. Il doit exécuter lui-même la compilation :
package.json ou .nvmrc.npm ci pour installer les versions exactes du fichier verrouillé package-lock.json.Build Command configurée. Si la commande renvoie un code d'erreur différent de 0, le déploiement s'interrompt immédiatement.Publish Directory vers le réseau CDN. Le conteneur de build est ensuite détruit. En local, votre éditeur signale parfois des erreurs de type sans bloquer. Mais en production, tsc stoppe net le build dès la moindre incohérence de type.
Si un composant lit process.env.VITE_API_URL et que la variable n'a pas été déclarée dans le dashboard de l'hébergeur, le build peut planter lors de la validation.
Sur les très gros projets, Node.js sature la limite par défaut de 1,4 Go de RAM. Solution : ajouter la variable d'environnement NODE_OPTIONS="--max-old-space-size=4096".
Vous pouvez personnaliser la commande de build pour imposer des vérifications de qualité avant de valider la mise en production :
| Technologie / Framework | Commande de Build Recommandée | Dossier de Sortie Produit |
|---|---|---|
| Vite (React, Vue, Svelte) | npm run build (exécute vite build) | dist/ |
| Create React App (CRA) | npm run build (exécute react-scripts build) | build/ |
| Angular CLI | ng build --configuration production | dist/<projet>/browser/ |
| Astro (Statique) | npm run build (exécute astro build) | dist/ |
| Next.js (Export Statique) | npm run build (avec output: 'export') | out/ |