Express et TypeScript avec transpilation âon-the-flyâ
Jâaime beaucoup utiliser babel-node pour dĂ©velopper des applications Node en ES2015 trĂšs facilement, puisque cela permet de transpiler le code Ă la volĂ©e (donc sans installer toute une mĂ©canique complexe Ă la Grunt, Gulp and co). J4au pu dĂ©couvrir ça grĂące Ă lâarticle dâAxel Rauschmayer http://www.2ality.com/2015/03/babel-on-node.html.
Jâaime aussi faire du TypeScript, et je viens de dĂ©couvrir quâun mĂ©canisme similaire existait (câest Ă dire faire des applications Node en TypeScript de maniĂšre transparente): ts-node.
Voyons donc comment cela fonctionne.
Attention: cette approche est intĂ©ressante pour les expĂ©rimentations et le dĂ©veloppement, mais pour la mise ne production vous nâĂ©chapperez pas Ă un âbuildâ classique.
Pré-requis
- il vous faut TypeScript:
npm install -g typescript
ousudo npm install -g typescript
selon votre OS - il faut aussi installer ts-node:
npm install -g ts-node
ousudo npm install -g ts-node
selon votre OS - vous aurez besoin de pouvoir installer des fichier de définitions TypeScript (ce qui permet à TypeScript de comprendre des frameworks JavaScript existants), donc pour cela il vous faut tsd:
npm install tsd -g
ousudo npm install tsd -g
selon votre OS
VoilĂ maintenant, nous avons tout ce quâil faut pour commencer.
Créer une application Express en TypeScript
Préparation
Dans votre répertoire de travail, tapez les commandes suivantes:
npm install express body-parser # installer les modules
tsd install express body-parser # installer les définitions
Dans ce mĂȘme rĂ©pertoire, crĂ©ez un fichier tsconfig.json
avec le contenu suivant:
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs"
}
}
Cela va âexpliquerâ au transpiler comment gĂ©rer les modules.
Maintenant, on code!
Notre âapplicationâ
Nous allons créer 3 fichier TypeScript:
Une classe Controller dans controller.ts
Remarque: dans le cas de lâutilisation de frameworks JavaScript âexternesâ, vous aurez Ă utiliser le mot-clĂ© require
Une classe YoController dans yoController.ts
Remarque: vous notez que dans ce cas là , notre import est plus façon TypeScript ou ES2015. En effet dans la classe précédente nous avons utilisé le mot-clé export
qui nous permet de faire lâimport de cette maniĂšre.
Et enfin notre application dans app.ts
Il vous suffit maintenant de lancer la commande:
ts-node app.ts
et ensuite vous pouvez âappelerâ lâurl http://localhost:8080/api/yo/message et vous obtiendrez un magnifique:
{"message":"YO!"}
VoilĂ , vous ĂȘtes prĂȘts Ă goĂ»ter aux joies du typage avec Node ;)
Trucs & Astuces
Un dernier pour la route. Si vous utilisez nodemon pour relancer votre serveur Ă chaque modification de code, dans notre cas avec ts-node, vous lâutiliserez de cette maniĂšre:
nodemon --exec ts-node app.ts -- *.ts
Amusez vous bien!
Tweet