Una de las cosas que nos detienen un poco al momento de escribir aplicaciones en node, es tener que compilar nuestro código cada vez que hacemos un cambio.. para esto compilar significa reiniciar el servidor tras cualquier cambio en el backend..
Segun dicen por ahí nodemon permite evitar ese tedioso procedimiento.. pero en algunos casos suele fallar y se interrumpe su ejecución.. lo que lleva a nuestro servidor a detenerse.. plop lamentable, porque es necesario iniciarlo nuevamente..
En mi búsqueda de una alternativa fue que encontré “Supervisor”, que muy similar a nodemon reinicia la aplicación ante cualquier cambio, con la ventaja de que al ocurrir cualquier error en nuestro código, el servidor continua su ejecución.
Instalarlo es sumamente fácil.. desde el manejador de paquetes de node (Node Package Manager)
npm install -g supervisor |
Una forma recomendable de instalarlo es con el parámetro -g (global) .. y seguramente necesitarán permisos de super-usuario si están en linux o ambientes similares..
Para utilizarlo, es exactamente igual que nodemon o el mismo node, haciendo..
supervisor app.js DEBUG: Running node-supervisor with DEBUG: program 'server.js' DEBUG: --watch '.' DEBUG: --extensions 'node|js' DEBUG: --exec 'node' DEBUG: Starting child process with 'node app.js' DEBUG: Watching directory '/home/jack/tutorials/node-supervisor.' for changes. |
Ahora la prueba, si cambiamos algo en uno de nuestros archivos .js veremos que el módulo detecta el cambio y reinicia la aplicación.. bueno algo como esto!
DEBUG: crashing child
DEBUG: Starting child process with 'node app.js' |
También si en alguno de nuestros cambios se produce un error, supervisor nos avisará en la consola y mantendrá el servidor siempre despierto 🙂