Estaba luchando con lo mismo para mi entorno de desarrollo hasta que noté que nodemonla API nos permite cambiar su comportamiento predeterminado para ejecutar un comando personalizado. Por ejemplo:
nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec 'ts-node' src/index.ts
O incluso mejor: externalice la configuración de nodemon a un nodemon.jsonarchivo con el siguiente contenido, y luego simplemente ejecute nodemon, como sugirió Sandokan:
{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }
En virtud de esto, podrá recargar en vivo un ts-nodeproceso sin tener que preocuparse por la implementación subyacente.
¡Salud!
Actualizado para la versión más reciente de nodemon:
Cree un nodemon.jsonarchivo con el siguiente contenido.
{
  "watch": ["src"],
  "ext": "ts",
  "ignore": ["src/**/*.spec.ts"],
  "exec": "ts-node ./src/index.ts"      // or "npx ts-node src/index.ts"
}
                 
                
                
                 
index.tses una instancia expresa, ¿cómo puedo matarlo y reiniciar?{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./app-server.ts" }y simplemente escribanodemon./antes de los nombres de las carpetas y se rompió. Esto funcionó para mí:{ "verbose": true, "watch": ["server/**/*.ts"], "ext": "ts js json", "ignore": ["server/**/*.spec.ts"], "exec": "ts-node index.ts" }. Y línea de comando:nodemon --watch server/**/*.ts --ignore server/**/*.spec.ts --verbose --exec ts-node index.tsexten el archivo de configuración, por lo que su búsqueda de ts cambia. Mi archivo de configuración se ve así:{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "ext": "ts js json", "_exec": "node dist/startup.js", "exec": "ts-node src/startup.ts" }He abandonado
nodemony estoyts-nodea favor de una alternativa mucho mejor,ts-node-devhttps://github.com/whitecolor/ts-node-devSolo corre
ts-node-dev src/index.tsfuente
tsc --watch.nodemonconts-node. ¡Gracias!"start": "ts-node-dev src". No es necesario usar babel, nodemon ni ninguna de las configuraciones que vienen con él. Nosotros nos encargamos de todo por ti.Aquí hay una alternativa a la respuesta de HeberLZ , usando scripts npm.
Mi
package.json:-eflag establece las extensiones a buscar,-westablece el directorio observado-xejecuta el script--inspecten elwatch:servescript es en realidad un indicador node.js, solo habilita el protocolo de depuración.fuente
ts-node --inspect -- src/index.tsahora debido a esto .-e ts -w ./srchizo el truco para mí - esto funcionó con un proyecto loopback4 generado por CLIEspecíficamente para este problema, he creado la
tsc-watchbiblioteca. Puedes encontrarlo en npm .El caso de uso obvio sería:
tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.js"fuente
"[...] similar to nodemon but for TypeCcript.":)Esto funciona para mi:
Aparentemente gracias a desde esta solicitud de extracción: https://github.com/remy/nodemon/pull/1552
fuente
ts-nodeinstaladonode_modules/? Para mí falla si no lo tengo.ts-nodeser instalado. Ejecutar este comando sints-nodegenerará unfailed to start process, "ts-node" exec not founderror. Probablemente tenías esto como un artefacto sobrantenode_modules. Dicho esto, esta solución es mucho mejor ya que no requiere configuración adicional.Añadir
"watch": "nodemon --exec ts-node -- ./src/index.ts"a lascriptssección de supackage.json.fuente
podrías usar ts-node-dev
Reinicia el proceso del nodo de destino cuando cualquiera de los archivos requeridos cambia (como nodo-dev estándar) pero comparte el proceso de compilación de Typecript entre reinicios.
Instalar en pc
y tu package.json podría ser así
fuente
lo hice con
e inicio de hilo ... ts-node no como 'ts-node'
fuente
Preferiría no usar ts-node y siempre ejecutar desde la carpeta dist.
Para hacer eso, solo configure su package.json con la configuración predeterminada:
y luego agregue el archivo de configuración nodemon.json :
Aquí, uso "exec": "npm restart"
para que todos los archivos ts se vuelvan a compilar en el archivo js y luego reinicien el servidor.
Para ejecutar en un entorno de desarrollo,
Usando esta configuración, siempre ejecutaré desde los archivos distribuidos y no necesito ts-node.
fuente
agregue esto a su archivo package.json
y para que esto funcione también necesita instalar ts-node como dependencia de desarrollo
ejecutar
yarn devpara iniciar el servidor de desarrollofuente