Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
NestJS

Installation de NestJS

Cette leçon guide l'installation de NestJS pas à pas : vérification de Node.js, installation globale de la CLI Nest, création d'un premier projet avec nest new, lancement en mode développement et test...

0 chapitres 0 QCM Accès gratuit
Installation de NestJS

À propos de ce cours

Cette leçon guide l'installation de NestJS pas à pas : vérification de Node.js, installation globale de la CLI Nest, création d'un premier projet avec nest new, lancement en mode développement et test dans le navigateur. Elle traite les erreurs courantes (politique d'exécution PowerShell, commande introuvable, port occupé) et termine par la publication du projet sur GitHub.

Objectifs de la leçon

  • Installer la CLI Nest.
  • Créer et lancer un premier projet NestJS.
  • Résoudre les erreurs d'installation les plus fréquentes.
  • Publier le projet sur GitHub dès le départ.

Étapes d'installation de NestJS

Les quatre étapes, de Node.js au premier « Hello World! ».

Étape 1 : vérifier les prérequis
node -v     # version LTS récente (20 ou plus)
npm -v
git --version

Si une commande n'est pas reconnue, reprenez la leçon 2.1 (Node.js) ou installez Git depuis git-scm.com.

Étape 2 : installer la CLI Nest

La CLI Nest (Command Line Interface) est l'outil qui crée les projets et génère le code. On l'installe globalement pour pouvoir utiliser la commande nest partout :

npm install -g @nestjs/cli
nest --version

Sous Linux ou macOS, si une erreur de permissions apparaît, utilisez nvm (leçon 2.1) plutôt que sudo.

Étape 3 : créer un projet

Placez-vous dans votre dossier de travail (par exemple Documents/nestjs) :

nest new api-stagiaires

La CLI demande le gestionnaire de paquets : choisissez npm avec les flèches puis Entrée. Elle crée le dossier, les fichiers de départ, installe les dépendances et initialise un dépôt Git. L'opération prend une à deux minutes.

api-stagiaires/
├── src/
│   ├── app.controller.ts       ← contrôleur racine (route GET /)
│   ├── app.controller.spec.ts  ← test unitaire du contrôleur
│   ├── app.module.ts           ← module racine
│   ├── app.service.ts          ← service racine
│   └── main.ts                 ← point d'entrée : démarre le serveur
├── test/                       ← tests end-to-end
├── nest-cli.json               ← configuration de la CLI
├── package.json
├── tsconfig.json               ← configuration TypeScript
└── .gitignore

Options utiles: nest new api-stagiaires --package-manager npm évite la question ; --strict active le mode strict de TypeScript ; --skip-git ne crée pas de dépôt Git. Sans installation globale : npx @nestjs/cli new api-stagiaires.

Étape 4 : lancer l'application
cd api-stagiaires
npm run start:dev

Le mode start:dev compile le TypeScript et redémarre automatiquement à chaque enregistrement. Le terminal affiche les modules chargés et les routes détectées :

[Nest] LOG [NestFactory] Starting Nest application...
[Nest] LOG [InstanceLoader] AppModule dependencies initialized
[Nest] LOG [RoutesResolver] AppController {/}:
[Nest] LOG [RouterExplorer] Mapped {/, GET} route
[Nest] LOG [NestApplication] Nest application successfully started

Ouvrez http://localhost:3000 : la page affiche Hello World!. Ce texte vient de la méthode getHello() de app.service.ts, appelée par app.controller.ts.

Pour arrêter le serveur : Ctrl+C dans le terminal.

Erreurs fréquentes
MessageCause et solution
nest : Impossible de charger le fichier … nest.ps1, car l'exécution de scripts est désactivée sur ce systèmePolitique de sécurité de PowerShell (Windows). Ouvrez PowerShell et exécutez :
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
ou utilisez l'invite de commandes (cmd) ou Git Bash.
'nest' n'est pas reconnu… / command not foundLa CLI n'est pas installée ou le terminal a été ouvert avant l'installation : fermez et rouvrez-le, ou utilisez npx @nestjs/cli.
EADDRINUSE: address already in use :::3000Le port 3000 est déjà utilisé (un autre serveur tourne). Arrêtez-le ou changez le port dans main.ts.
EACCES: permission denied (Linux / macOS)Installation globale sans droits : utilisez nvm.
Installation très longue ou erreurs réseauConnexion ou proxy : relancez npm install dans le dossier du projet.
Changer le port
// src/main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(process.env.PORT ?? 3000);   // 3000 par défaut
}
bootstrap();
Publier le projet sur GitHub

Dès le premier jour, votre travail doit être sauvegardé et visible sur GitHub. Créez sur github.com/new un dépôt vide nommé api-stagiaires (sans README ni .gitignore), puis :

git add .
git commit -m "Création du projet NestJS"
git branch -M main
git remote add origin https://github.com/VOTRE-COMPTE/api-stagiaires.git
git push -u origin main

Si Git indique « nothing to commit », le premier commit a déjà été fait par la CLI : passez directement à git branch -M main. Vérifiez sur GitHub que le dossier node_modules n'apparaît pas: il est exclu par le fichier .gitignore généré.

Activités

Activité 1 Premier projet NestJS

  1. Installez la CLI et créez le projet api-stagiaires.
  2. Lancez-le en mode développement et ouvrez http://localhost:3000.
  3. Dans app.service.ts, remplacez « Hello World! » par « Bienvenue sur l'API des stagiaires » et enregistrez. Que se passe-t-il dans le terminal et dans le navigateur (après actualisation) ?
  4. Publiez le projet sur GitHub et collez l'adresse du dépôt dans votre compte rendu.
Voir le corrigé

À l'enregistrement, le terminal affiche une recompilation puis un redémarrage de l'application ; après actualisation, le navigateur affiche le nouveau message. Pensez à faire un commit : git commit -am "Message d'accueil personnalisé" puis git push.

Activité 2 Lancer sur un autre port

Démarrez l'application sur le port 4000 sans modifier le code. Indice : regardez la ligne app.listen.

Voir le corrigé

Le code lit la variable d'environnement PORT. Sous Linux / macOS / Git Bash : PORT=4000 npm run start:dev. Sous PowerShell : $env:PORT=4000; npm run start:dev. Sous cmd : set PORT=4000 && npm run start:dev.

À retenir

  • La CLI s'installe avec npm install -g @nestjs/cli.
  • nest new crée un projet complet, avec dépendances et dépôt Git.
  • npm run start:dev lance l'API sur localhost:3000 avec rechargement automatique.
  • Sous Windows, l'erreur PowerShell se corrige avec Set-ExecutionPolicy RemoteSigned.
  • Le projet est publié sur GitHub dès sa création ; node_modules n'y figure jamais.