À propos de ce cours
Objectifs de la leçon
- Installer les extensions utiles au développement NestJS.
- Activer le formatage et la correction automatiques.
- Déboguer une application NestJS avec des points d'arrêt.
Ouvrir le projet
Ouvrez toujours le dossier racine du projet (celui qui contient package.json) : Fichier → Ouvrir le dossier, ou depuis le terminal :
cd api-stagiaires
code .
Le terminal intégré s'ouvre avec Ctrl+ù (clavier AZERTY) ou Ctrl+`. Vous pouvez y ouvrir plusieurs onglets : un pour npm run start:dev, un autre pour Git et la CLI.
Les extensions recommandées
| Extension | Rôle |
|---|---|
| ESLint (Microsoft) | Signale les erreurs et mauvaises pratiques selon la configuration du projet |
| Prettier – Code formatter | Met en forme le code automatiquement (fichier .prettierrc du projet) |
| REST Client (Huachao Mao) | Envoie des requêtes HTTP depuis des fichiers .http (leçon 2.6) |
| Thunder Client | Client d'API graphique intégré à VS Code (leçon 2.6) |
| Error Lens | Affiche les erreurs directement sur la ligne concernée |
| GitLens (facultatif) | Historique Git de chaque ligne |
Le support de TypeScript est intégré à VS Code : autocomplétion, navigation (F12 pour aller à la définition), renommage (F2) et imports automatiques fonctionnent sans extension.
Formater et corriger à l'enregistrement
Créez le fichier .vscode/settings.json à la racine du projet :
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "explicit"
},
"typescript.preferences.importModuleSpecifier": "relative"
}
À chaque Ctrl+S, le code est mis en forme, les erreurs ESLint corrigibles sont réparées et les imports inutiles supprimés. Vous pouvez aussi recommander les extensions à toute l'équipe avec .vscode/extensions.json:
{
"recommendations": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"humao.rest-client",
"usernamehw.errorlens"
]
}
Déboguer avec des points d'arrêt
Plutôt que de multiplier les console.log, le débogueur permet de mettre le programme en pause sur une ligne et d'inspecter les variables.
Un point d'arrêt met l'exécution en pause : on lit les variables et on avance pas à pas.
Méthode 1 : le terminal de débogage (la plus simple)
- Ouvrez la palette de commandes (Ctrl+Maj+P) et choisissez Debug: JavaScript Debug Terminal.
- Dans ce terminal, lancez
npm run start:dev. - Cliquez dans la marge à gauche d'une ligne de
app.service.ts: un point rouge apparaît. - Ouvrez
http://localhost:3000: l'exécution s'arrête sur la ligne et VS Code affiche les variables.
Méthode 2 : un fichier launch.json
Lancez npm run start:debug dans un terminal normal, puis attachez le débogueur avec cette configuration (.vscode/launch.json) et F5 :
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Attacher à NestJS",
"port": 9229,
"restart": true,
"skipFiles": ["<node_internals>/**"]
}
]
}
"restart": true rattache automatiquement le débogueur après chaque redémarrage de l'application en mode watch.
| Touche | Action |
|---|---|
| F5 | Continuer jusqu'au prochain point d'arrêt |
| F10 | Pas à pas principal (ligne suivante) |
| F11 | Pas à pas détaillé (entrer dans la fonction) |
| Maj+F11 | Sortir de la fonction |
| Maj+F5 | Arrêter le débogage |
Point d'arrêt conditionnel: clic droit sur le point rouge → Modifier le point d'arrêt, puis une condition comme id === 3. Le programme ne s'arrête que lorsque la condition est vraie.
Activités
Activité 1 Configurer l'éditeur
- Installez ESLint, Prettier, REST Client et Error Lens.
- Créez
.vscode/settings.jsoncomme ci-dessus. - Dans
app.controller.ts, désindentez volontairement plusieurs lignes et ajoutez des espaces inutiles, puis enregistrez. Que se passe-t-il ? - Faites un commit « Configuration VS Code » (le dossier
.vscodepeut être partagé avec l'équipe).
Voir le corrigé
À l'enregistrement, Prettier remet le code en forme selon .prettierrc (guillemets simples, virgules finales, indentation de 2 espaces).
Activité 2 Trouver un bug avec le débogueur
Remplacez le contenu de app.service.ts par :
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
const notes = [12, 15, 9, 16];
let total = 0;
for (let i = 1; i < notes.length; i++) {
total += notes[i];
}
const moyenne = total / notes.length;
return `Moyenne : ${moyenne}`;
}
}
La moyenne attendue est 13. Placez un point d'arrêt dans la boucle, lancez en mode débogage, avancez avec F10 et observez i et total. Trouvez et corrigez l'erreur.
Voir le corrigé
La page affiche « Moyenne : 10 ». Le débogueur montre que i commence à 1 : la première note (12) n'est jamais ajoutée. Correction : for (let i = 0; ...), ou mieux const total = notes.reduce((a, b) => a + b, 0);.
À retenir
- On ouvre toujours le dossier racine du projet dans VS Code.
- ESLint, Prettier, REST Client et Error Lens sont les extensions de base.
- .vscode/settings.json active le formatage et la correction à l'enregistrement.
- Le JavaScript Debug Terminal ou start:debug + launch.json permettent d'utiliser des points d'arrêt.
- F10 et F11 font avancer le programme pas à pas.