En el marco Fastify, existe de todos modos para actualizar el navegador cuando se producen cambios al guardar. En Express tenemos npm livereload
como un middleware para escuchar los cambios de back-end en Express. ¿Existen funciones similares en Fastify o tengo que escribir mi propio complemento registrado para actualizar automáticamente el navegador en los cambios de back-end?
El paquete livereload
que mencionaste es una herramienta de propósito general que también funciona con Fastify. Pude hacerlo funcionar con los siguientes paquetes:
tsc -w -outdir dist/
para ver los archivos .ts
y transpilarlos en archivos .js
nodemon -r dotenv/config dist/server.js
para ver los archivos .js
y reiniciar el servidor weblivereload ./dist/ -w 500
para que el navegador se actualice una vez que se reinicie el servidorpackage.json
"scripts": { "build": "tsc", "start": "node -r dotenv/config dist/server.js", "dev:tsc": "tsc -w -outdir dist/", "dev:watch": "nodemon -r dotenv/config dist/server.js", "dev:livereload": "livereload ./dist/ -w 500", "dev": "concurrently -k -p \"[{name}]\" -n \"TypeScript,App,LiveReload\" -c \"yellow.bold,cyan.bold,green.bold\" \"yarn dev:tsc\" \"yarn dev:watch\" \"yarn dev:livereload\" " },
Tenga en cuenta que debe incluir la siguiente etiqueta
<script>
en sus archivos.html
para que Livereload funcione<script> document.write( '<script src="http://' + (location.host || "localhost").split(":")[0] + ':35729/livereload.js?snipver=1"></' + "script>" ); </script>
Esto fue suficiente para hacer funcionar mi pequeño proyecto Fastify, su kilometraje puede variar.
Sí, existe el módulo fastify-cli
para eso: https://github.com/fastify/fastify-cli
tiene la opción --watch
que puede usar para recargar en vivo su backend en los cambios de archivos.
En su package.json
agregue este script:
"dev": "fastify start -l info --watch --pretty-logs app.js",
Tenga en cuenta que app.js debe exponer esta interfaz:
module.exports = function (fastify, ops, next) { next() }