package.json et scripts npm
Manifeste, scripts nommés et installation propre.
Objectifs
À la fin de cette leçon, vous saurez :
- lire et écrire un package.json complet ;
- créer des scripts npm pour vos commandes récurrentes ;
- installer, désinstaller, mettre à jour proprement.
Anatomie du manifeste
npm init -y
{
"name": "todo-api",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node serveur.js",
"dev": "node --watch serveur.js"
},
"dependencies": {},
"devDependencies": {}
}
Champ type: "module" : active la syntaxe import/export dans tout le projet (sinon CommonJS require). Vous l'utilisez depuis le début de vos projets modernes.
Les scripts : vos raccourcis nommés
"scripts": {
"start": "node serveur.js",
"dev": "node --watch serveur.js",
"test": "node --test",
"db:init": "node scripts/init-db.js"
}
npm run dev # lance n'importe quel script
npm start # raccourci réservé à start/test/stop/restart
Ce que ça change : plus besoin de retenir les commandes exactes (node --watch --env-file=.env src/serveur.js) — un nom stable suffit. Et votre plateforme Devmind fait exactement cela : npm run db:migrate, npm run dev:api sont des scripts du workspace racine.
Installer / retirer
npm install pg # ajoute aux dependencies
npm install -D jest # ajoute aux devDependencies (-D)
npm uninstall express # retire proprement des deux fichiers
npm update # met à jour dans les plages autorisées
install <pkg> écrit automatiquement dans package.json : jamais d'édition manuelle des versions.
Le réflexe avant d'ajouter une dépendance
Une dépendance est un engagement : code à maintenir par autrui, surface d'attaque, poids d'installation. Trois questions avant chaque install :
- Ne puis-je l'écrire en 20 lignes moi-même ? (souvent oui pour les petits utilitaires)
- Est-elle maintenue ? (dernière version, téléchargements hebdo, issues actives)
- Combien de dépendances ELLE entraîne ? (voir chapitre suivant)
Exercice
- Ajoutez à votre projet :
dev,start,init-db,test. - Installez un vrai outil de test en devDependency.
- Vérifiez avec
npm runla liste des scripts disponibles. - Pourquoi
npm startsans « run » mais pasnpm dev?
Résumé
- package.json = identité + scripts + dépendances ; type module pour import/export.
- Scripts nommés = interface stable sur des commandes mouvantes.
- Chaque dépendance est un engagement : questionner avant d'installer.
Correction disponibleCherchez d’abord par vous-même.Voir la correction
Correction
Réponses détaillées
Question 4. npm réserve quatre raccourcis historiques (start/test/stop/restart) ; tous les autres passent par npm run <nom>. C'est une convention d'outillage, pas de la logique profonde — mais c'est elle qui rend npm test universel.