page change typescript angular gulp development-environment nodemon

change - Cómo mirar y recargar ts-node cuando cambian los archivos TypeScript



meta tags angular 6 (8)

Agregue "watch": "nodemon --exec ts-node -- ./src/index.ts" a la sección de scripts de su package.json .

Estoy tratando de ejecutar un servidor de desarrollo con TypeScript y una aplicación Angular sin transpilar archivos ts cada vez. Descubrí que puedo ejecutar con ts-node pero también quiero ver archivos .ts y volver a cargar la aplicación / servidor como lo haría con algo como gulp watch.


Aquí hay una alternativa a la answer de HeberLZ, usando scripts npm.

Mi package.json :

"scripts": { "watch": "nodemon -e ts -w ./src -x npm run watch:serve", "watch:serve": "ts-node --inspect src/index.ts" },

  • -e marca establece las extensiones a buscar,
  • -w establece el directorio observado,
  • -x ejecuta el script.

--inspect en el watch:serve script de watch:serve es en realidad un indicador de node.js, solo habilita el protocolo de depuración.


Específicamente para este problema, he creado la biblioteca tsc-watch . Puedes encontrarlo en npm .

El caso de uso obvio sería:

tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.js"


Estaba luchando con lo mismo para mi entorno de desarrollo hasta que noté que la API de nodemon nos permite cambiar su comportamiento predeterminado para ejecutar un comando personalizado. Un ejemplo de esto sería el siguiente:

nodemon --watch ''src/**/*.ts'' --ignore ''src/**/*.spec.ts'' --exec ''ts-node'' src/index.ts

O incluso mejor y externalizar la configuración de nodemon como Sandokan sugirió a un archivo nodemon.json con el siguiente contenido, y luego simplemente ejecutar nodemon:

{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }

En virtud de esto, podrá volver a cargar en vivo un proceso ts-node sin tener que preocuparse por la implementación subyacente.

¡Aclamaciones!

Actualizado para la versión más reciente de nodemon:

Cree un archivo nodemon.json con el siguiente contenido.

{ "watch": ["src"], "ext": "ts", "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./src/index.ts" }



Utilizo tsmon https://www.npmjs.com/package/tsmon está profundamente integrado con el mecanografiado y proporciono la función de recarga y recarga incremental.

Estaba usando ts-node-dev hasta que un día noté que no puede detectar los cambios en las interfaces.

Instalar

tsmon [you .ts file]

Ve a la carpeta de tu proyecto de mecanografía

"start": "nodemon --watch ''src/**/*.ts'' --ignore ''src/**/*.spec.ts'' --exec ts-node src/index.ts"


lo hice con

npm install tsmon

e inicio de hilo ... ts-node no como ''ts-node''


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

yarn add ts-node-dev --dev

y tu package.json podría ser así

"scripts": { "test": "echo /"Error: no test specified/" && exit 1", "tsc": "tsc", "dev": "ts-node-dev --respawn --transpileOnly ./src/index.ts", "prod": "tsc && node ./build/index.js" }