Ce repository a été conçu comme la base de ce que sera votre projet Express.js une fois votre setup terminé. Prenez soin de lire chaque étape et ne manquez pas de feuilleter les pages de documentation qui vous sont partagées.
## Environnement de développement
1. Télécharger puis installer **Node.js** (LTS, i.e. Long-Term Support)
2. Installer le package **TypeScript** globalement à l'aide de **npm** :
```
npm install -g typescript
```
**Ressources** :
-[Page de téléchargement de Node.js](https://nodejs.org/en/download)
-[C'est quoi installer un package "globalement" ?](https://docs.npmjs.com/downloading-and-installing-packages-globally)
---
## Setup du projet
### Initialisation
1. Créer un repository sur GitHub puis le cloner
2. Initialiser le **projet** à la racine avec **npm** :
```bash
npm init -y# Génère un fichier package.json
```
3. Initialiser **TypeScript** au sein du projet :
```bash
tsc --init# Génère un fichier tsconfig.json
```
**Ressources** :
-[Comment créer un repo sur GitHub ?](https://docs.github.com/fr/repositories/creating-and-managing-repositories/creating-a-new-repository)
Pour utiliser Express.js mais aussi pour formatter notre code ou même le tester, il nous faut des packages externes. Certains de ces packages ne sont utiles que dans le cadre du développement, tandis que d'autres sont utiles même en production :
- on appelle _dependencies_ les dépendances essentielles au fonctionnement du projet en production
- on appelle _dev dependencies_ les dépendances nécessaires uniquement au développement du projet
Ce projet dépend initialement de deux _dependencies_ :
-`dotenv` sert à charger des variables d'environnement à partir d'un fichier
-`express` sert à créer des applications web de manière simple et rapide
Côté développement, nous allons avoir besoin de plusieurs _dev dependencies_ :
-`ts-node-dev` sert à compiler les fichiers TypeScript à la volée et en continu
-`jest` est un framework de test qui permet d'écrire et d'exécuter des tests en JavaScript
-`ts-jest` sert à tester des fichiers TypeScript via l'utilisation de `jest`
-`prettier` (optionnel) sert à appliquer des règles de formatage cohérentes à votre code
Sans oublier tous les packages préfixés par `@types` : `@types/express`, `@types/node` et `@types/jest`. Ces packages spéciaux fournissent des informations de typage pour des packages JavaScript qui ne sont pas écrits en TypeScript nativement.
Pour installer tous ces packages, utilisez les commandes suivantes :
```bash
npm install dotenv express
npm install-D ts-node-dev jest ts-jest prettier @types/express @types/jest @types/node