¿Qué es Nodemon?: monitorea tus cambios en Node.js

| Última modificación: 13 de septiembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si trabajas con Node.js, seguramente te has encontrado en la situación de tener que reiniciar manualmente tu servidor cada vez que realizas cambios en tu código. Aunque no parece un gran esfuerzo, hacerlo de forma repetitiva puede volverse tedioso, sobre todo en proyectos de mayor tamaño. Aquí es donde entra en acción Nodemon, una herramienta que facilita el desarrollo monitorizando automáticamente los cambios en tus archivos y reiniciando la aplicación sin que tengas que intervenir.

En este artículo, te vamos a contar qué es, cómo funciona, cómo puedes instalarlo y algunas de sus características para que puedas sacarle el máximo provecho en tus proyectos.

Nodemon

¿Qué es Nodemon?

Es una utilidad que se usa en el desarrollo de aplicaciones basadas en Node.js. Su principal función es monitorear los archivos de tu aplicación y reiniciar automáticamente el servidor cuando detecta cambios. Lo mejor de todo es que no necesitas modificar tu código ni la forma en que lo desarrollas, simplemente reemplazas el comando node por node mon en la línea de comandos al ejecutar tu script.

Cuando trabajas en el desarrollo de aplicaciones, es común realizar múltiples cambios en el código. Si utilizas Node.js sin Node mon, deberías detener manualmente el servidor y volver a ejecutarlo cada vez que hagas un cambio. Con Node mon, ese proceso es automático, lo que te permite enfocarte en escribir código sin interrupciones.

Instalación de Nodemon

Instalar Node mon es muy sencillo. Puedes hacerlo de manera global en tu sistema o solo para el proyecto en el que estés trabajando.

  1. Instalación global: Ejecuta el siguiente comando en tu terminal para instalar Node mon globalmente, lo que significa que estará disponible en todos tus proyectos:
npm install -g nodemon

Si prefieres usar yarn, puedes instalarlo así:

yarn global add nodemon
  1. Instalación local (dependencia de desarrollo): Si solo quieres usar Node mon en un proyecto específico, puedes instalarlo como una dependencia de desarrollo:
npm install --save-dev nodemon

O con yarn:

yarn add nodemon -D

Con la instalación local, Node mon no estará disponible globalmente, pero puedes ejecutarlo desde el comando npx nodemon o configurarlo en un script dentro de tu package.json.

¿Cómo usar Node mon?

El uso de Node mon es muy sencillo. Después de instalarlo, solo necesitas reemplazar el comando node por nodemon al ejecutar tu aplicación.

Por ejemplo, si tu aplicación normalmente se ejecuta con:

node server.js

Con Nod emon, simplemente cambias a:

nodemon server.js

A partir de aquí, Node mon se encargará de monitorear los archivos en tu directorio y reiniciar automáticamente el servidor cuando detecte algún cambio.

Veamos un ejemplo:

Si tu aplicación acepta argumentos, puedes pasárselos directamente a Node mon como lo harías normalmente con Node.js. Supongamos que tu aplicación recibe un host y un puerto como argumentos:

nodemon server.js localhost 8080

Cualquier salida de este script estará precedida por [nodemon], mientras que la salida de tu aplicación será mostrada como de costumbre.

Opciones útiles

  1. Reiniciar manualmente:
    Mientras Node mon está ejecutándose, si necesitas reiniciar el servidor manualmente sin detenerlo, puedes escribir rs y pulsar Enter en la terminal. Esto reiniciará la aplicación.
  2. Configurar archivos ignorados:
    A veces no querrás que Node mon monitoree ciertos archivos o directorios, como las pruebas o los logs. Para ello, puedes usar la opción --ignore:
nodemon --ignore tests/ --ignore logs/
  1. Monitorear múltiples directorios:
    Si quieres que Node mon monitoree cambios en más de un directorio, puedes hacerlo con la opción --watch:
nodemon --watch src --watch lib
  1. Especificar extensiones:
    De manera predeterminada, Node mon monitorea archivos con extensiones .js, .json y otros. Si trabajas con otros tipos de archivos, puedes especificar las extensiones que deseas que Node mon monitoree con la opción -e:
   nodemon -e js,html,css

Configuración avanzada

Node mon te permite crear archivos de configuración para personalizar su comportamiento. Puedes hacerlo de manera local en tu proyecto con un archivo nodemon.json, o de forma global para aplicarlo a todos tus proyectos.

Veamos un ejemplo de configuración:

{
"verbose": true,
"ignore": ["*.test.js", "**/logs/**"],
"execMap": {
"js": "node --inspect"
}
}

Con esta configuración, Node mon será más detallado en sus logs (verbose: true), ignorará los archivos de prueba y los directorios de logs, y ejecutará tu código con el modo de inspección de Node.js para depurar.

Nodemon y package.json

Otra opción es incluir la configuración de Node mon dentro de tu archivo package.json. Esto te permite centralizar la configuración de tu proyecto:

{
  "name": "mi-app",
  "version": "1.0.0",
  "scripts": {
    "start": "nodemon server.js"
  },
  "nodemonConfig": {
    "ignore": ["test/", "logs/"],
    "delay": 1000
  }
}

Si este tipo de herramientas te resultan útiles y te gustaría aprender a fondo sobre Node.js, aplicaciones web y otros aspectos del desarrollo moderno, en KeepCoding te ofrecemos el mejor Bootcamp desarrollo web. No solo aprenderás a manejar herramientas como Nodemon, sino que también desarrollarás las habilidades necesarias para cambiar tu vida y tener una carrera exitosa en el sector tecnológico. ¿Estás listo para dar el paso hacia un futuro con estabilidad laboral y salarios competitivos? ¡No esperes más y apúntate al Bootcamp de KeepCoding!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado