Nodemon pour JavaScript (Node.js) : guide complet avec exemples
1. Qu'est-ce que Nodemon et pourquoi l'utiliser ?
Nodemon est un utilitaire de développement pour Node.js qui redémarre automatiquement le serveur (ou toute autre application Node.js) dès qu'il détecte des modifications dans les fichiers du projet. C'est un outil indispensable pour les développeurs web travaillant avec Express, Koa, Fastify et d'autres frameworks. Au lieu d'arrêter et de relancer manuellement le serveur après chaque changement de code, Nodemon le fait pour vous en surveillant le système de fichiers et en réagissant aux événements de sauvegarde.
L'objectif principal de Nodemon est d'accélérer le cycle de développement. Sans lui, le développeur perd du temps sur des actions répétitives : Ctrl+C, flèche haut, Entrée. Avec Nodemon, ce processus est entièrement automatisé. Il ne se contente pas de redémarrer le processus ; il gère également correctement l'arrêt de l'instance précédente, libérant les ports et les ressources. De plus, Nodemon peut ignorer certains fichiers et dossiers (comme node_modules ou .git), ce qui réduit la charge sur le processeur et le disque.
Il est important de comprendre que Nodemon n'est pas une bibliothèque au sens classique (comme Lodash ou Axios), mais un outil en ligne de commande (CLI). Il n'est pas conçu pour être importé dans le code comme un module (bien que cela soit techniquement possible via son API). Son utilisation principale se fait via la ligne de commande ou via des scripts dans package.json. Nodemon est compatible avec tous les systèmes d'exploitation (Windows, macOS, Linux) et fonctionne avec n'importe quelle version de Node.js.
2. Installation
Nodemon s'installe via npm (Node Package Manager). Il est recommandé de l'installer globalement ou comme dépendance de développement dans votre projet.
Installation globale (pour tous les projets) :
npm install -g nodemon
Installation locale (pour un projet spécifique) :
npm install --save-dev nodemon
Après une installation locale, vous pouvez lancer Nodemon via npx ou en ajoutant un script dans package.json :
{
"scripts": {
"dev": "nodemon app.js"
}
}
Ensuite, lancez : npm run dev.
3. Démarrage rapide — exemple minimal fonctionnel
Créez un fichier app.js avec un serveur HTTP simple :
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Bonjour, tout le monde !\n');
});
const PORT = 3000;
server.listen(PORT, () => {
console.log(`Serveur en cours d'exécution sur http://localhost:${PORT}/`);
});
Maintenant, lancez Nodemon :
nodemon app.js
Vous verrez la sortie suivante :
[nodemon] 3.1.0
[nodemon] pour redémarrer à tout moment, tapez `rs`
[nodemon] surveillance du(s) chemin(s) : *.*
[nodemon] extensions surveillées : js,mjs,cjs,json
[nodemon] démarrage de `node app.js`
Serveur en cours d'exécution sur http://localhost:3000/
Essayez de modifier le texte dans res.end() par 'Bonjour, Nodemon !\n' et enregistrez le fichier. Nodemon redémarrera automatiquement le serveur, et vous verrez la réponse mise à jour en actualisant la page dans votre navigateur.
4. Méthodes et fonctionnalités principales
Nodemon propose à la fois une interface en ligne de commande et une API programmable. Voici les principales méthodes et fonctionnalités avec des exemples.
4.1. nodemon([options]) — Lancement programmatique
Signature : nodemon([options: Object])
Fonction : Lance Nodemon de manière programmatique depuis un script Node.js. Permet un réglage fin du comportement et la gestion des événements.
Exemple :
const nodemon = require('nodemon');
nodemon({
script: 'app.js',
ext: 'js json html',
ignore: ['node_modules/', 'test/'],
env: { NODE_ENV: 'develop