ACLClouds
ACLClouds

Comment modifier la commande de démarrage ?

L’onglet « Démarrage » affiche la commande de démarrage et les variables qu’elle utilise, comme le « Fichier principal ».

L’onglet « Démarrage » affiche la commande de démarrage et les variables qu’elle utilise, comme le « Fichier principal ». Préférez un script start stable plutôt qu’une longue commande difficile à maintenir.

Procédure étape par étape

  1. Identifier le fichier principal

    Repérez src/index.js, app.js, bot.py ou le point d’entrée déclaré par votre projet.

  2. Définir un script

    En Node.js, ajoutez un script start dans package.json. En Python, gardez une commande simple vers le module principal.

  3. Modifier la variable

    Dans Démarrage, changez le « Fichier principal », ou cliquez sur « Modifier » dans « Commande de démarrage » puis sur « Sauvegarder ». Le changement s’applique au prochain démarrage.

  4. Contrôler la console

    Une erreur « fichier introuvable » signifie que le chemin ou la casse ne correspond pas au fichier présent.

Scripts Node.js

"scripts": {
  "start": "node src/index.js"
}

Script start qui enchaîne deux étapes

"scripts": {
  "start": "node deploy-commands.js && node src/index.js"
}

Comment la commande est construite

Pour un bot Node.js, la commande par défaut est node {{MAIN_FILE}} {{NODE_ARGS}} ; pour Python, python -u {{PY_FILE}}. Au lancement, chaque variable entre accolades est remplacée par sa valeur. La carte « Commande de démarrage » montre la commande avec ces valeurs déjà remplacées.

Le « Fichier principal » (MAIN_FILE ou PY_FILE) suffit dans la plupart des cas : indiquez un chemin relatif à la racine des fichiers, par exemple src/index.js. Les « Arguments du bot » (NODE_ARGS) sont ajoutés après le fichier et lus par votre code dans process.argv.

Écrire une commande personnalisée

« Modifier » ouvre la commande brute, avec ses variables entre accolades. Elle tient sur une seule ligne de 255 caractères au maximum et lance un seul programme : &&, ;, | et les guillemets ne sont pas interprétés. Pour enchaîner plusieurs étapes, placez-les dans le script start de package.json et utilisez npm start comme commande.

Une commande écrite à la main est conservée telle quelle : le « Fichier principal » n’agit plus que si elle contient {{MAIN_FILE}}. Pour revenir au réglage d’origine, cliquez sur « Tout réinitialiser » : la commande par défaut est reconstruite avec le fichier principal trouvé dans vos fichiers, les options reprennent leur valeur par défaut et les tokens ne sont pas touchés.

Vérifier la commande lancée

Redémarrez le bot depuis la console. Après « Serveur marqué comme en démarrage », une ligne commençant par $ montre la commande réellement exécutée, par exemple $ node src/index.js. Si le chemin ne correspond pas, comparez-le avec l’onglet « Fichiers », casse comprise : Index.js et index.js sont deux fichiers différents sous Linux.

Questions fréquentes

Pourquoi cd src && node index.js ne fonctionne pas ?

La commande n’est pas interprétée par un shell : && devient un simple argument et cd ne peut pas y être utilisé. Indiquez directement le chemin, node src/index.js, ou placez l’enchaînement dans le script start de package.json et mettez npm start comme commande.

Vaut-il mieux npm start ou node index.js ?

Sans commande enregistrée, un script start qui se limite à node index.js est lancé directement, sans processus npm devant le bot : le démarrage est plus rapide et l’arrêt plus propre. Gardez npm start quand le script enchaîne plusieurs étapes, comme l’enregistrement des commandes slash avant la connexion.

Comment passer une option à Node.js, comme une limite de mémoire ?

La variable NODE_OPTIONS est réservée : écrivez l’option dans la commande, avant le fichier, par exemple node --max-old-space-size=256 src/index.js. Placée après le fichier, elle serait transmise à votre code et non à Node.js.

J’ai changé la commande, mais le bot lance toujours l’ancienne, pourquoi ?

La commande s’applique au démarrage suivant : redémarrez le bot depuis la console. Après « Sauvegarder », le message « La commande de démarrage a été mise à jour. » confirme l’enregistrement.