Estaba luchando con lo mismo para mi entorno de desarrollo hasta que noté que nodemon
la 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.json
archivo 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-node
proceso sin tener que preocuparse por la implementación subyacente.
¡Salud!
Actualizado para la versión más reciente de nodemon:
Cree un nodemon.json
archivo 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.ts
es 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.ts
ext
en 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
nodemon
y estoyts-node
a favor de una alternativa mucho mejor,ts-node-dev
https://github.com/whitecolor/ts-node-devSolo corre
ts-node-dev src/index.ts
fuente
tsc --watch
.nodemon
conts-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
:-e
flag establece las extensiones a buscar,-w
establece el directorio observado-x
ejecuta el script--inspect
en elwatch:serve
script es en realidad un indicador node.js, solo habilita el protocolo de depuración.fuente
ts-node --inspect -- src/index.ts
ahora debido a esto .-e ts -w ./src
hizo el truco para mí - esto funcionó con un proyecto loopback4 generado por CLIEspecíficamente para este problema, he creado la
tsc-watch
biblioteca. 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-node
instaladonode_modules/
? Para mí falla si no lo tengo.ts-node
ser instalado. Ejecutar este comando sints-node
generará unfailed to start process, "ts-node" exec not found
error. 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 lascripts
secció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 dev
para iniciar el servidor de desarrollofuente