Pour l'installation, voir INSTALL.md.
Avant de commencer à coder sur une nouvelle machine, il y a quelques étapes :
- Installer node en version
16.13.2
et npm. Vous pouvez installer la version de node avec la commandenvm use
de Node Version Manager. Il installera la version écrite dans.nvmrc
. - Installer les dépendances :
npm install
. - Si pas déjà fait par l'étape précédente, préparez Husky pour le script de pre-commit :
npm run prepare
.
Husky permet de lancer des scripts (voir plus bas) pour lancer les tests unitaires, formatter automatiquement le code et indiquer les erreurs de lint.
- Copier dev.example.env dans un fichier
.env
- Démarrer la base de données en mode developpement :
docker-compose -f docker-compose.dev.yaml up
- Démarrer l'application en mode developpement :
npm run start:dev
- Démarrer les tests unitaires en mode developpement :
npm run test:dev
docker-compose -f docker-compose.dev.yml down -v
Permet de lancer l'application en mode développement : l'application est relancé à chanque modification de code.
Il utilise nodemon
et ts-node
.
Permet de lancer l'application en mode production : build le projet avec npm run build
puis démarre l'application.
ℹ️ généralement utilisé par docker. Vous n'avez normalement pas besoin de ce script.
Permet de transformer le projet TypeScript (ts-node) en JavaScript. Le résultat est disponible dans le dossier build
.
ℹ️ généralement utilisé par docker. Vous n'avez normalement pas besoin de ce script.
Permet de lancer les tests unitaires une fois. Les tests unitaires sont défini dans le dossier spec
et ce dossier à la même architecture que src
.
Les tests unitaires utilises Jest.
Permet comme npm run test
de lancer les tests unitaires, mais il seront relancé à chaque à chaque modification d'un fichier de test unitaire.
Permet de formatter le code automatiquement en suivant les standards par défaut surchargés par le fichier .prettierrc
.
Permet comme npm run prettier-format
de formatter le code, mais à chaque changement de fichier TypeScript.
Un alias permet d'avoir des chemins plus propres lors d'imports, et de se passer de l'écriture relative à base de "../../".
Les alias comme @app
ou @services/
doivent être écrit pour TypeScript dans tsconfig.json
et pour JavaScript dans package.json
(_moduleAliases).