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
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.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 startvous 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 checkedet continue : la première ligne de défense a disparu.
Récapitulatif
chapterjs buildvé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.