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

Créer un nouveau projet NestJS

Cette leçon détaille la création d'un projet NestJS avec la commande nest new : ce que fait la commande, règles de nommage du projet, options utiles (--package-manager, --strict, --skip-git, --skip-in...

0 chapitres 0 QCM Accès gratuit
Créer un nouveau projet NestJS

À propos de ce cours

Cette leçon détaille la création d'un projet NestJS avec la commande nest new : ce que fait la commande, règles de nommage du projet, options utiles (--package-manager, --strict, --skip-git, --skip-install, --dry-run), différence entre mode normal et mode strict de TypeScript, puis vérification du projet créé en lançant l'application, les tests unitaires, les tests e2e et le linter.

Objectifs de la leçon

  • Créer un projet NestJS en choisissant les bonnes options.
  • Respecter les conventions de nommage d'un projet.
  • Comprendre l'intérêt du mode strict de TypeScript.
  • Vérifier qu'un projet fraîchement créé fonctionne.
La commande nest new

Au chapitre 02, vous avez installé la CLI et créé un projet de test. Voyons maintenant en détail ce que fait nest new et comment l'adapter à vos besoins.

Étapes de la commande nest new

nest new pose une question, crée les fichiers, installe les dépendances et initialise Git.

Bien nommer son projet
  • Utilisez le kebab-case: minuscules et mots séparés par des tirets (api-formation, gestion-stagiaires-api).
  • Pas d'espaces, pas d'accents, pas de majuscules: le nom devient celui du dossier, du paquet npm ("name" dans package.json) et souvent du dépôt GitHub.
  • Choisissez un nom qui décrit le projet : api-bibliotheque plutôt que projet1.

Rangez vos projets dans un dossier de travail simple, sans espaces ni accents (par exemple C:\dev\nestjs ou ~/dev/nestjs) et en dehors d'un dossier synchronisé (OneDrive, Google Drive) : la synchronisation de node_modules ralentit tout et provoque des erreurs.

Les options de nest new
OptionRaccourciEffet
--package-manager npm-p npmChoisit le gestionnaire sans poser la question
--strictActive les vérifications strictes de TypeScript
--skip-git-gN'initialise pas de dépôt Git
--skip-install-sCrée les fichiers sans installer les dépendances
--dry-run-dAffiche ce qui serait créé, sans rien écrire

La commande recommandée pour ce cours :

nest new api-formation --package-manager npm --strict
Le mode strict

Avec --strict, TypeScript refuse davantage de code risqué. Exemple : une fonction qui peut renvoyer undefined.

const stagiaires = [{ id: 1, nom: 'Ben Ali' }];

const s = stagiaires.find((x) => x.id === 2);  // peut être undefined
console.log(s.nom);
// mode normal : aucune erreur… plantage à l'exécution
// mode strict : erreur dès l'écriture « 's' is possibly 'undefined' »

console.log(s?.nom ?? 'Stagiaire introuvable');   // version correcte

Le mode strict demande un peu plus de rigueur mais évite une grande partie des bugs. Il active notamment strictNullChecks et noImplicitAny dans tsconfig.json (leçon 3.4).

Vérifier le projet créé
cd api-formation
npm run start:dev     # l'API répond « Hello World! » sur http://localhost:3000
npm run test          # tests unitaires : 1 test réussi
npm run test:e2e      # test end-to-end : GET / renvoie 200 et « Hello World! »
npm run lint          # vérification ESLint

Un projet neuf passe tous ces contrôles. Prenez l'habitude de les relancer avant chaque git push: si un contrôle échoue, c'est votre dernière modification qui est en cause.

Sans installation globale: npx @nestjs/cli new api-formation fonctionne aussi. C'est pratique sur un ordinateur où vous n'avez pas les droits d'administrateur.

Activités

Activité 1 Prévisualiser une création

Lancez nest new demo-api --dry-run --package-manager npm. Combien de fichiers seraient créés ? Le dossier demo-api existe-t-il après la commande ?

Voir le corrigé

La CLI liste une quinzaine de fichiers (CREATE demo-api/...) mais n'écrit rien : le dossier n'existe pas. --dry-run est utile pour vérifier une commande avant de l'exécuter.

Activité 2 Comparer mode normal et mode strict

  1. Créez projet-normal sans --strict et projet-strict avec --strict (utilisez --skip-install pour aller vite).
  2. Comparez leurs fichiers tsconfig.json: quelles options diffèrent ?
  3. Supprimez ensuite ces deux dossiers de test.
Voir le corrigé

Dans le projet strict, des options comme strictNullChecks, noImplicitAny ou strictBindCallApply passent à true (le détail exact dépend de la version de la CLI). C'est la seule différence entre les deux projets.

Activité 3 Contrôler un projet neuf

Créez le projet api-formation avec la commande recommandée, puis lancez les quatre commandes de vérification. Notez le résultat de chacune.

Voir le corrigé

start:dev: « Nest application successfully started » ; test: Tests: 1 passed; test:e2e: Tests: 1 passed; lint: aucune erreur. Ce projet sera utilisé dans le TP 1.

À retenir

  • nest new crée les fichiers, installe les dépendances et initialise Git.
  • Un nom de projet s'écrit en kebab-case, sans espaces ni accents.
  • --strict active des vérifications TypeScript qui évitent de nombreux bugs.
  • start:dev, test, test:e2e et lint vérifient qu'un projet fonctionne.