J’essaie d’exécuter un serveur de développement avec TypeScript et une application Angular sans transstackr les fichiers ts à chaque fois. J’ai trouvé que je pouvais faire tourner avec ts-node
mais je veux aussi regarder les fichiers .ts
et recharger l’application / le serveur comme je le ferais avec quelque chose comme gulp watch.
Je me débattais avec la même chose pour mon environnement de développement jusqu’à ce que je remarque que l’API de nodemon nous permet de modifier son comportement par défaut afin d’exécuter une commande personnalisée. Un exemple de ceci serait comme suit:
nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec 'ts-node' src/index.ts
Ou encore mieux et extérioriser la configuration de nodemon en Sandokan dans un fichier nodemon.json avec le contenu suivant, puis exécuter simplement nodemon:
{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }
En faisant cela, vous pourrez recharger en direct un processus ts-node sans vous soucier de l’implémentation sous-jacente.
À votre santé!
Mis à jour pour la version la plus récente de nodemon:
Créez un fichier nodemon.json
avec le contenu suivant.
{ "watch": ["src"], "ext": "ts", "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./src/index.ts" }
Voici une alternative à la réponse de HeberLZ, utilisant des scripts npm.
Mon package.json
:
"scripts": { "watch": "nodemon -e ts -w ./src -x npm run watch:serve", "watch:serve": "ts-node --inspect src/index.ts" },
-e
drapeau définit les extensions à rechercher, -w
définit le répertoire surveillé, -x
exécute le script. --inspect
dans le script watch:serve
est en fait un indicateur node.js, il active simplement le protocole de débogage.
Plus précisément pour ce problème, j’ai créé la bibliothèque tsc-watch
. vous pouvez le trouver sur npm .
Cas d’utilisation évident serait:
tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.ts"
J’ai vidé nodemon
et ts-node
en faveur d’une alternative bien meilleure, ts-node-dev
https://github.com/whitecolor/ts-node-dev
Il suffit de lancer ts-node-dev src/index.ts
Ajoutez "watch": "nodemon --exec ts-node -- ./src/index.ts"
à la section scripts
de votre package.json
.