Passer au contenu principal
chapterjs build vérifie votre bot et le compile pour la production. Tout ce qui peut être faux dans vos fichiers est trouvé ici, avant que quoi que ce soit ne soit en ligne. C’est ce que lance le script build de votre projet :
C’est tout : chapterjs start fait tourner ce qui a été compilé. La compilation n’a pas besoin de token et ne parle jamais à Discord : lancez-la n’importe où, aussi souvent que vous voulez.
Les codes de sortie et ce qu’écrit la commande sont dans la référence du CLI.

Ce qu’elle fait

1

Vérifie les types

Ce que souligne votre éditeur, pour tout le projet d’un coup, avec le TypeScript installé dans votre projet (tsc -b). Une erreur arrête la compilation :
Sans TypeScript, ou sans tsconfig.json, la compilation le dit et continue :
2

Lance chaque fichier une fois

Chaque fichier de src/ est chargé et ce qu’il déclare est vérifié, comme le fait chapterjs dev quand vous enregistrez : un nom que Discord refuse, une option sans description, deux déclarations de la même commande… Chaque fichier cassé est signalé, puis la compilation s’arrête :
Avec plusieurs, la dernière ligne les compte : ✗ These 2 files can't run, so your bot was not built. Fix them and build again: ....
3

Compile votre bot

Tout votre bot devient un seul fichier JavaScript, .chapterjs/build/bot.js :
  • chaque fichier de src/ (commandes, événements, composants, tâches, présence, langues), avec ce qu’ils importent de votre projet ;
  • seulement ce qui est utilisé : le code que rien n’appelle est laissé de côté ;
  • compact, mais avec les noms que vous avez écrits, et une correspondance vers vos fichiers.
Un fichier que le compilateur ne sait pas lire arrête la compilation de la même façon, avec can't be compiled dans la dernière ligne.
4

Lance ce qu’elle a compilé

Le fichier compilé est chargé une fois, exactement comme la production le chargera. Un fichier qui tourne depuis src/ mais pas une fois compilé arrête la compilation avec can't run once compiled dans la dernière ligne.
Une compilation qui échoue ne laisse rien derrière elle : la compilation précédente est supprimée avant de compiler, pour qu’il n’y ait jamais un bot à moitié compilé à lancer par erreur. La compilation écrit aussi .chapterjs/build/build.json : la version de ChapterJS qui l’a faite, une empreinte de src/ et si vos fichiers rejoignent des salons vocaux. chapterjs start le lit pour savoir si la compilation est celle à lancer.

La production fait tourner la compilation, pas vos fichiers

Une fois compilé, votre bot ne change pas quand vous modifiez un fichier. Les changements passent en ligne la prochaine fois que vous compilez et relancez ; d’ici là, chapterjs start vous le rappelle :
Vous pouvez donc continuer à travailler dans le même dossier pendant que votre bot tourne. Une compilation faite par une autre version de ChapterJS n’est pas lancée du tout :

Les erreurs nomment toujours vos fichiers

Le fichier compilé n’est pas fait pour être lu, mais vous n’avez jamais à le faire : quand quelque chose échoue en production, l’erreur nomme le fichier et la ligne que vous avez écrits, parce que la compilation garde une correspondance entre le fichier compilé et vos sources.
Les noms de vos fonctions et variables sont gardés aussi.

Ce qui est dans la compilation

Rien à installer

La compilation est faite par esbuild, fourni avec ChapterJS : votre projet n’a rien à ajouter, et rien à configurer. Il n’est chargé que par chapterjs build : faire tourner votre bot n’en a jamais besoin.
Avec pnpm, un projet a besoin d’un fichier de plus, sinon pnpm refuse de l’installer : esbuild vient avec un script d’installation, et pnpm veut qu’on lui dise quoi en faire. create chapterjs écrit ce fichier pour vous ; dans un projet créé autrement, voir Structure du projet.

chapterjs start

Faire tourner pour tout le monde le bot que vous avez compilé.

Déployer

Mettre votre bot sur une machine qui reste allumée.