chapterjs est fournie avec le paquet chapterjs. Les projets créés avec create chapterjs la lancent par leurs scripts (dev, build, start, test, postinstall).
Comment utiliser chaque commande est dans le guide : chapterjs dev, chapterjs build, chapterjs start, chapterjs test, Déployer. Ce que veut dire chaque message est dans Dépannage.
Commandes
Chaque commande tourne dans le dossier du projet : celui qui contientpackage.json et src/. Sans src/, dev, build et test s’arrêtent avec ✗ There is no src folder here.
chapterjs dev
Fait tourner le bot du dossier courant sur le serveur de test de DEV_GUILD_ID, et recharge chaque fichier de src/ quand il est enregistré. Tourne jusqu’à ce qu’on l’arrête.
Ne prend aucune option.
chapterjs build
Vérifie le projet et le compile dans .chapterjs/build/. N’a pas besoin de token et n’envoie rien à Discord.
Une compilation qui échoue ne laisse aucun
.chapterjs/build/ derrière elle. Ne prend aucune option.
chapterjs start
Fait tourner la compilation pour tout le monde. Tourne jusqu’à ce qu’on l’arrête.
Combien de processus font tourner le bot : un nombre entier de 1 ou plus, écrit
--processes 4 ou --processes=4. Plafonné au nombre de shards, avec un ℹ qui le dit. Toute autre chose après start arrête la commande avec ✗ chapterjs start takes one option: ....chapterjs test
Vérifie le bot contre un Discord en mémoire. N’a pas besoin de token et n’envoie rien à Discord.
Ne prend aucune option. Les stores gardent leurs données en mémoire : le dossier
data/ du projet n’est jamais touché.
chapterjs sync
Écrit le dossier .chapterjs/ du projet : ce que le projet ajoute aux types de chapterjs (les fichiers de public/, ses langues et ses commandes, trouvés en lisant les fichiers sans les exécuter) et le tsconfig.json du seul projet TypeScript qui couvre src/. Affiche ✓ Types written to .chapterjs/. N’a pas besoin de token. dev et build le font aussi au démarrage ; les modèles le lancent en postinstall.
Seuls les fichiers dont le contenu a changé sont écrits ; ce qu’écrivait une ancienne version est retiré. .chapterjs/cache/ et .chapterjs/build/ sont laissés tranquilles.
chapterjs --version
Affiche la version du paquet. -v fonctionne aussi.
chapterjs --help
Affiche l’aide ci-dessus. -h et aucune commande du tout font la même chose. Tout autre mot est une erreur : ✗ "…" is not a command., suivi de l’aide.
Environnement
.env
dev et start lisent le fichier .env du dossier du projet, quand il y en a un, puis le vrai environnement : une variable réglée dans l’environnement l’emporte sur le fichier. Les espaces autour des valeurs sont retirés.
Le token du bot, depuis la page Bot de l’application dans le Developer Portal. Un préfixe
Bot est retiré. Refusé quand il est vide, quand c’est une valeur d’exemple restée en place (your-token-here, xxx, todo, changeme, <...>…) ou quand il contient un espace.L’identifiant du serveur de test : 17 à 20 chiffres. Obligatoire pour
dev, qui ne fait tourner le bot que sur ce serveur. Facultatif pour start, qui ignore alors ce serveur, pour que dev et start puissent partager un token sans répondre deux fois à la même chose. Refusé quand ce n’est pas un identifiant.L’adresse du Redis qu’utilisent les stores déclarés avec
storage: 'redis' : redis://hôte:port, rediss:// pour une connexion TLS, /1 à la fin pour une base autre que la première, un utilisateur et un mot de passe devant l’hôte quand il y en a (redis://user:password@host:6379). Nécessaire seulement quand un store dit storage: 'redis' ; réglée sans store de ce genre, rien n’est connecté. Refusée quand ce n’est pas une adresse de cette forme. Voir Stockage.Le mot de passe de ce Redis, quand il n’est pas dans
REDIS_URL (ou pour remplacer celui qui y est). Refusé quand REDIS_URL n’est pas réglée..env, dev s’arrête avec ✗ There is no .env file in this folder. quand aucune des deux valeurs n’est dans l’environnement, et start avec ✗ BOT_TOKEN is not set. quand le token n’y est pas.
Autres variables
Réglez-la sur n’importe quoi pour afficher les symboles sans couleur. Les couleurs ne sont de toute façon utilisées que quand la sortie est un terminal.
Lue par Node lui-même.
--max-old-space-size=<MB> augmente la mémoire que le bot peut utiliser : voir Mémoire.dev attend une correction au lieu de s’arrêter) est décidé par le terminal : l’entrée et la sortie doivent toutes deux être un terminal.
Codes de sortie
Symboles
Chaque ligne affichée par le CLI commence par l’un de cinq symboles. Les lignes qui suivent la première d’un message sont indentées sous elle.
Une erreur dans un fichier du projet est préfixée par son chemin, et sa ligne quand elle est connue :
✗ src/commands/ping.ts:4 …. Avec plusieurs processus, chaque ligne d’un processus commence par son numéro : [2] ✓ ….
.chapterjs/
Ce que le CLI garde dans le projet, ignoré par git :
Le dossier peut être supprimé à tout moment :
sync réécrit les types, le prochain dev ou start enregistre à nouveau les commandes, et build fait une nouvelle compilation.