Passer au contenu principal
Votre bot fonctionne sur votre ordinateur avec chapterjs dev. Le mettre en ligne pour tout le monde se fait en deux étapes : le compiler, puis le lancer sur une machine qui reste allumée. Cette page est la première étape, et les raisons derrière.

Pourquoi compiler

chapterjs dev fait tourner vos fichiers tels qu’ils sont, les recharge à l’enregistrement, et garde la dernière version qui fonctionnait d’un fichier cassé. C’est ce qu’il faut pendant que vous écrivez. En production, c’est l’inverse qu’il faut : rien ne doit changer sous le bot, et un fichier cassé ne doit jamais être en ligne. Alors la production fait tourner une compilation : un instantané de votre bot, vérifié de fond en comble et compilé en un seul fichier. Si un fichier ne peut pas tourner, il n’y a pas de compilation, et rien n’est mis en ligne par erreur.

La lancer

La compilation n’a pas besoin de token et ne parle jamais à Discord : lancez-la n’importe où, aussi souvent que vous voulez.

Ce qu’elle fait

1

Vérifie les types

Ce que souligne votre éditeur, pour tout le projet d’un coup, avec le TypeScript de votre projet. Une erreur arrête la compilation :
C’est le moment où le « aucun type à écrire » de l’éditeur paie : chaque erreur qu’il pouvait souligner est attrapée ici, avant que quoi que ce soit soit en ligne. Le script typecheck de votre projet lance la même vérification seule.
2

Lance chaque fichier une fois

Chaque commande, événement, composant, tâche et fichier de langue est chargé et vérifié, exactement comme le fait chapterjs dev quand vous enregistrez : un nom que Discord refuse, une option sans description, deux fichiers qui sont la même commande. Chaque fichier cassé est signalé, puis la compilation s’arrête.
3

Compile le bot

Tout devient un seul fichier JavaScript, .chapterjs/build/bot.js : vos fichiers, ce qu’ils importent de votre projet, et rien de ce qui n’est pas utilisé. Les noms que vous avez écrits sont gardés, avec une correspondance vers vos fichiers, pour qu’une erreur en production dise toujours src/commands/warn.ts:12.
4

Lance ce qu’elle a compilé

Le fichier compilé est chargé une fois, comme la production le chargera. Un fichier qui tourne depuis src/ mais pas une fois compilé arrête la compilation.
Une compilation qui échoue ne laisse rien derrière elle : la compilation précédente est d’abord supprimée, pour qu’il n’y ait jamais un bot à moitié compilé à lancer par erreur.

Ce qui est dans la compilation, et ce qui n’y est pas

La compilation est faite par esbuild, fourni avec ChapterJS : rien à installer, rien à configurer, et il n’est chargé que par chapterjs build.

Points d’attention

  • La compilation est un instantané. Une fois compilé, modifier un fichier ne change rien jusqu’à ce que vous recompiliez. chapterjs start vous le rappelle quand les sources ont changé depuis la compilation.
  • Une compilation appartient à une version de ChapterJS. Après avoir mis à jour le paquet, recompilez ; une compilation d’une autre version est refusée avec quoi lancer.
  • Gardez TypeScript installé là où vous compilez. Sans lui, la compilation dit ℹ Types were not checked et continue : la première ligne de défense a disparu.

Récapitulatif

  • chapterjs build vérifie les types, lance chaque fichier, compile le bot dans .chapterjs/build, et lance le résultat une fois.
  • Tout fichier invalide fait échouer la compilation ; une compilation échouée ne laisse rien.
  • La production fait tourner la compilation, pas vos fichiers.

Mettre en ligne

Lancer la compilation sur une machine qui reste allumée, avec l’application de production.

Guide : chapterjs build

La même chose, avec chaque message.