Exécuter un fichier TypeScript en une seule ligne de commande

Article publié le 13/11/2023, dernière mise à jour le 13/11/2023

Vous l’aurez peut-être découvert dans notre introduction à TypeScript, exécuter des fichiers .ts peut s’avérer légèrement fastidieux (si l’on utilise pas d’outils pré-configurés), car il faut compiler le code TypeScript en code JavaScript après chaque modification, pour ensuite pouvoir l’exécuter…

Mais si vous souhaitez exécuter du TypeScript côté serveur, c’est beaucoup plus simple !

Dans un environnement NodeJS, il vous suffira d’une commande très simple pour exécuter votre fichier, comme ceci :

npx ts-node index.ts

Les dessous de la commande

Voyons ensemble les outils utilisés par cette commande, qui exécute votre code TypeScript de manière très transparente (et un peu magique).

npx

Même si vous ne connaissez pas la commande npx, vous connaissez forcément NPM, le gestionnaire de paquet qui vient avec NodeJS !

Et bien npx est une commande installée par défaut avec NPM (>5.2.0)

Elle permet d’exécuter la commande issue de n’importe quel paquet NPM, et d’installer toutes les dépendances nécessaires (si elles ne sont pas déjà installées).

Voilà ce qu’il se passe :

  • On passe la commande ts-node (et le paramètre index.ts) à npx
  • npx vérifie si le binaire de la commande est présent dans le dossier node_modules local ET le node_modules global au système
  • Si la commande est introuvable, npx va installer les dépendances nécessaires
  • Une fois les dépendances installées, npx exécute la commande

Cet utilitaire, en plus de simplifier le processus d’exécution, permet également de palier à certains problèmes d’ajout des chemins à la variable PATH (notamment sous Windows)

ts-node

Ce module est un moteur d’exécution qui permet de faire de la transpilation JIT (just-in-time) de TypeScript vers JavaScript, ce qui permet d’exécuter des fichiers .ts « directement » dans NodeJS, sans pré-compilation !

L’avantage de cette solution, c’est que cela ne fonctionne pas seulement pour vos scripts, mais ts-node va transpiler « à la volée » tous les modules importés via require ou import.

Il est même possible de simplement exécuter


Vous avez terminé l'article ?

Commentaires (0)

pour laisser un commentaire

Aucun commentaire pour l'instant