Configurer le fichier principal Node.js

3 min de lecture07 novembre 2026

Sur l'hébergement d'applications, la plateforme n'exécute pas votre projet au hasard : elle lance le fichier désigné par le champ MAIN_FILE, avec index.js comme valeur par défaut. Un chemin incorrect donne un processus qui démarre puis s'arrête aussitôt, souvent avec Cannot find module dans la console. Voici comment définir ce point d'entrée et corriger les erreurs de chemin.

Ce que désigne le fichier principal

MAIN_FILE contient le chemin du fichier que Node.js doit exécuter, relativement à la racine du projet. Si votre point d'entrée est à la racine, la valeur est simplement index.js. S'il se trouve dans un sous-dossier, écrivez src/server.js : le chemin part de la racine du service, pas du dossier où vous avez téléversé l'archive.

Le fichier doit être du JavaScript exécutable par le runtime choisi :

  • CommonJS : require(...) et module.exports, extension .js ou .cjs.
  • Modules ES : import ... from ..., extension .mjs, ou .js avec "type": "module" dans package.json.

Un fichier .ts ne se lance pas directement : compilez-le au préalable, puis pointez vers le fichier produit, par exemple dist/index.js.

MAIN_FILE ou script de démarrage

Deux mécanismes peuvent coexister : le fichier principal exécuté par la plateforme (node index.js) et le script start de package.json. Gardez une seule source de vérité. Si npm start lance node dist/server.js, faites pointer MAIN_FILE vers le même fichier, sinon vous debuggerrez deux chemins différents selon le mode de démarrage.

Un cas fréquent : le projet est compilé dans dist/ mais MAIN_FILE reste sur index.js. Le fichier source contient des import non transpilés ou n'existe plus après le build. Vérifiez le contenu réel du dossier après compilation, pas seulement votre dépôt local.

Corriger « fichier introuvable »

Le message typique ressemble à Error: Cannot find module '/home/container/index.js' ou MODULE_NOT_FOUND. Dans la console du panneau, listez les fichiers :

Bash
ls -la
find . -maxdepth 3 -name "*.js" -not -path "./node_modules/*"

Trois causes reviennent :

  1. Archive imbriquée : le zip a créé mon-projet/mon-projet/index.js. Déplacez le contenu à la racine ou corrigez le chemin.
  2. Casse : Linux distingue Index.js et index.js. Renommez avec la casse exacte.
  3. Mauvais dossier : le fichier est dans src/ mais MAIN_FILE indique la racine.

Après correction, redémarrez le service et relisez le journal depuis la première ligne, pas seulement la dernière.

Vérifier

  • Le journal affiche votre message de démarrage ou listening on ....
  • Le service reste actif plus de quelques secondes, sans boucle de redémarrage.
  • La route de santé, si vous en avez une, répond en 200.
  • Après un renommage, MAIN_FILE et les imports internes ont été mis à jour.

Gardez un point d'entrée stable à la racine (index.js) qui importe le reste depuis src/. Ce fichier change rarement, et le champ MAIN_FILE reste correct même lorsque l'organisation interne évolue.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi