À propos de ce cours
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.
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-bibliothequeplutôt queprojet1.
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
| Option | Raccourci | Effet |
|---|---|---|
--package-manager npm | -p npm | Choisit le gestionnaire sans poser la question |
--strict | Active les vérifications strictes de TypeScript | |
--skip-git | -g | N'initialise pas de dépôt Git |
--skip-install | -s | Crée les fichiers sans installer les dépendances |
--dry-run | -d | Affiche 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
- Créez
projet-normalsans--strictetprojet-strictavec--strict(utilisez--skip-installpour aller vite). - Comparez leurs fichiers
tsconfig.json: quelles options diffèrent ? - 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.