ts-node-dev pour TypeScript : guide complet avec exemples
Bienvenue sur PythonLib ! Dans cet article, nous allons explorer en détail la bibliothèque ts-node-dev — un outil indispensable pour le développement moderne en TypeScript. Si vous codez en TypeScript et en avez assez de recompiler manuellement votre code après chaque modification, cet article est fait pour vous.
1. Qu'est-ce que ts-node-dev et pourquoi l'utiliser ?
ts-node-dev est un utilitaire pour TypeScript qui assure le rechargement à chaud (hot reload) de votre application. Il redémarre automatiquement le processus Node.js dès qu'un fichier source TypeScript est modifié. Cela accélère considérablement le développement, car vous n'avez plus besoin d'arrêter et de relancer manuellement votre serveur ou script.
Pourquoi en avez-vous besoin ? Pendant le développement, vous modifiez constamment votre code. Sans rechargement automatique, vous devez à chaque fois :
- Arrêter le processus en cours (Ctrl+C)
- Le relancer (npm start ou ts-node)
- Attendre la compilation et le démarrage
ts-node-dev résout ce problème. Il surveille les modifications des fichiers de votre projet et redémarre instantanément l'application. Contrairement à nodemon (qui fonctionne avec JavaScript), ts-node-dev comprend TypeScript et utilise ts-node en interne pour la compilation à la volée. Cela en fait le choix idéal pour le développement de serveurs, d'outils CLI et de toute application Node.js en TypeScript.
2. Installation
L'installation de ts-node-dev se fait via npm (Node Package Manager). Il est recommandé de l'installer en tant que dépendance de développement, car elle n'est nécessaire que pendant le développement.
# Installation globale (déconseillée)
npm install -g ts-node-dev
# Installation en tant que dépendance de développement dans le projet (recommandée)
npm install --save-dev ts-node-dev
# Ou avec yarn
yarn add --dev ts-node-dev
# Ou avec pnpm
pnpm add -D ts-node-dev
Après l'installation, vérifiez que tout fonctionne :
npx ts-node-dev --version
Si vous voyez un numéro de version (par exemple, 2.0.0), l'installation a réussi.
3. Démarrage rapide — exemple minimal fonctionnel
Créons une simple application TypeScript et lançons-la avec ts-node-dev.
Étape 1 : Initialisation du projet
mkdir my-ts-app
cd my-ts-app
npm init -y
npm install --save-dev typescript ts-node-dev @types/node
npx tsc --init
Étape 2 : Créez le fichier src/index.ts
// src/index.ts
const greet = (name: string): string => {
return `Bonjour, ${name}!`;
};
console.log(greet('PythonLib'));
console.log('Le serveur est en cours d\'exécution...');
// Export pour l'exemple
export { greet };
Étape 3 : Lancez avec ts-node-dev
npx ts-node-dev --respawn src/index.ts
Vous devriez voir :
[INFO] 15:30:00 ts-node-dev ver. 2.0.0 (using ts-node ver. 10.9.1, typescript ver. 5.3.3)
Bonjour, PythonLib!
Le serveur est en cours d'exécution...
Maintenant, modifiez le message de bienvenue dans src/index.ts et enregistrez le fichier. Vous verrez que le processus redémarre automatiquement et affiche le nouveau résultat.
4. Options principales / commandes / classes
ts-node-dev est un outil CLI, pas une bibliothèque avec une API. Cependant, il dispose de nombreuses options (flags) que l'on peut considérer comme des "méthodes" de configuration. Voici 8 options clés.
4.1 --respawn
Syntaxe : ts-node-dev --respawn [fichier]
Fonction : Redémarre automatiquement le processus lors de la modification de tout fichier du projet. C'est l'option principale pour le rechargement à chaud.
Exemple concret :
npx ts-node-dev --respawn src/index.ts