No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

3D
12H
32M
5S

Herramientas para ser más felices: Nodemon y PM2

6/31
Recursos

Aportes 159

Preguntas 33

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Para ejecutar nodemon en windows

npx nodemon archivo.js

RESUMEN:


Desarrollo
Nodemon. Demons en linux, puedes tener procesos que ves ejecutandose
nodemon + archivo al que quiero acceder detecta cambios, y ejecuta automaticamente el código.

sudo npm install -g nodemon

Producción

sudo npm install -g pm2

PM2 Es un demonio administrador de procesos que me puede ayudar a administrar y mantener mi aplicación 24/7.

  • Voy a poner monitorizar el código para saber si algo se rompe.
  • Me permite ver dashboards de mi código, puedo ver que está corriendo.
  • Puedo ver el rendimiento de mi cpu
  • Con: pm2 stop + id —> me detiene el proceso que está en ejecución con ese ID.

PM2

Compañeras y compañeros, os presento Live server para desarrolladores backend :p

Para los que tienen windows deben cambiar las politicas de ejecución de scripts en powrshell

https://protegermipc.net/2018/11/22/permitir-la-ejecucion-de-scripts-powershell-en-windows-10/

  • Nodemon: para usar en desarrollo
  • PM2: Para usar en producción.

**PM2 **es un administrador de procesos demonio que lo ayudará a administrar y mantener su aplicación en línea las 24 horas, los 7 días de la semana

Enfocado a producción

npm install pm2 -g
pm2 start

pm2 status
pm2 log

Un daemon es un proceso que se ejecuta en segundo plano. 😁

  • Nodemon (Desarrollo): Es un gestor que nos ayuda a detectar los cambios, compilarlo y ejecutarlos.

npm install -g nodemon

  • PM2 (Producción): Es parecida a nodemon simplemente mas avanzada y mas compleja. No se debe utilizar en desarrollo por que dará más problemas que soluciones. Nos ayudara a ver los datos de nuestra aplicación en producción, como el uso del CPU, memoria, cuantas veces se ha reiniciado.

npm install -g pm2

Excelente, me encanto con tu forma de explicar tan fácil de digerir estoy empezando a recurar de nuevo mi entusiasmo por la programación, le esta pasando lo mismo a alguien mas?

zsh: command not found: nodemon

Si alguien esta usando hyper bash pues tienes que hacer
sudo npm i -g nodemon o sudo yarn global add nodemon

nodemon
nodemon es una herramienta que ayuda a desarrollar aplicaciones basadas en node.js al reiniciar automáticamente la aplicación de nodo cuando se detectan cambios en el directorio.

sudo npm install -g nodemon
nodemon nombre_archivo

Ya conocía Nodemon, viene muy bien para ahorrarnos tiempo de desarrollo, para proyectos de Node también se puede generar una script en el package.json y ahorrarse la instalación global de, haciendo:

"start": "npx nodemon app.js"

Y luego haciendo npm start desde la terminal ya se ejecutará Nodemon para nuestro proyecto, tardará un poquito más la primera vez porque no está instalado, pero luego correrá perfectamente. Con la instalación global como muestra en el video sin el npx. Va en gustos.


¡Me encantó PM2! No conocía esa herramienta. Hay que seguir practicando y aprendiendo para sacarle mucho jugo. Parece muy útil en proyectos que ya esten en producción.

Excelente clase.

Si desean solamente probar unas lineas de código, un algoritmo que están construyendo o crear y depurar alguna función, pueden instalar la extensión Code Runer

Es muy util para hacer pequeñas pruebas en muchos lenguajes de programacion

Para utilizarla solo necesitan seleccionar el codigo que desean correr y presionar:

ctrl + alt + n

Yo la utilizo cuando necesito crear un pequeño bloque de código independiente del resto o cuando quiero probar una solucion que usa de los métodos de un Array, un String o similares para ser mas rapido

Nodemon es una herramienta que nos ayuda a detectar los cambios y los ejecutarlos automáticamente.

PM2 nos ayuda a ver los datos de nuestra aplicacion en producción, como el uso de CPU, Memoria, cuantas veces se ha reiniciado, etc. No es recomendable ocupar PM2 en desarrollo ya que con la cantidad de datos y controles nos dará mas problemas que soluciones.

Si estás viendo éste curso en el 2022, Node en su versión 18.11.0 ya no ocupa nodemon, con solo teclear:

node --watch index.js

te corre la app y se mantiene corriendo y reinicia el proceso cuando detecta un cambio. Sin dependencias.

para los que requieran permisos de administrador

sudo npm install -g nodemon```

vine para aprender front y creo que me esta gustando el backend 😀

Nodemon se puede usar de forma global o como solo como dependencia de desarrollo:

npm install --save-dev nodemon

o

yarn add -D nodemon

Y ya de aquí solo seria cuestión de configurar tu package.json agregando tu script de start

"scripts": {
    "start": "nodemon ./server.js"
  }

Recomendacion

  • Nodemon: Para desarrollo

  • PM2: para producción

Actualización: Ha salido un nuevo feature de Node que se encarga de hacer la misma tarea que nodemon. Basta con ejecutar el programa con

node --watch index.js

Resumiendo: Nodemon para desarollo y PM2 para produccion.

Que alguien le de un premio a este hombre (profesor). Esta información vale millones. Gracias buen hombre.

Para ejecutarlo como administrador en la consola de linux hay que escribir:

sudo npm install -g nodemon

Para solucionar:
zsh: command not found: nodemon
Es posible también crear um symbolic link:
ln -s /Users/YOUR_USER/.npm-global/bin/nodemon /usr/local/bin

En muchas ocasiones nosotros deberemos estar buscando errores y compilándolos de nuevo a node para comprobar si ya han sido solucionados, pero este proceso se puede convertir en algo tedioso.
Para optimizar este proceso de solución de errores y/o agregar cambios se suele utilizar la dependencia nodemon, que se encarga específicamente de estar vigilando algún cambio dentro de nuestro código de node para recargarse automáticamente, esta herramienta es perfecta para desarrollo.
También existe otra dependencia llama pm2, se encarga de vigilar el estado de nuestro código pero con muchas más ventajas e información que nodemon, esta herramienta se recomienda utilizar solo en modo de producción debido a la cantidad de detalles que nos ofrecerá.

Les recomiendo el plugin de visualstudio que yo uso, se llama quokka y es para visualisar cambios en javascript sin tener que ver la consola

Octubre 2022: node añade el parámetro --watch y así ya no hace falta nodemon

omg al final llegué a la conclusion de que esto es el equivalente al live server de las paginas web XD

pm2 toca saberlo instalar por q hay veces que genera mucho consumo en la cpu …

me paso a mi y toco desinstalar todoooo y volver a instalar y ya si no funciona pm2 hay otro que se llama forever

Actualización: A partir de la versión 18.11.0 no es necesario el nodemon, ya que se pueda hacer directamente con node ejecutando el parámetro --watch.

node --watch ejemplo.js

Para que trabaje en MAC tal cual indica el profesor, he seguido estos pasos.

sudo su
npm install -g nodemon --save-dev

De está manera me funciono en MacOS Bigsur

Herramientas para ser más felices: Nodemon y PM2

Nodemon

Recarga el código a ejecutar de forma automática al guardar cambios y funciona para entornos de desarrollo.

Comandos

# 1. Instalación
npm i -g nodemon

# 2. start
nodemon <ruta-de-archivo>

PM2

Es un paquete similar a Nodemon, pero con mayor uso y funcionalidad en entornos de producción.

Comandos

# 1. Instalación
npm i -g PM2

# 2. start 
pm2 start <ruta-de-archivo>

# 3. stop
pm2 stop <ruta-de-archivo> || id-de-proceso

# 4. estado
pm2 status

# 5. monitoreo
pm2 monitor

# 6. logs
pm2 log 

PM2 => recomendable usar solo para producción. En desarrollo usar solo nodemon

NODEMON= Va a crearnos una herramienta que cada vez que detecte en el codigo que estamos ejecutando o en cualquier de las dependenciasrelacionadas con ese codigo en nuestros archivos. Va a volver a ejecutar todo nuestro codigo!



PM2= Es parecido a Nodemon la diferencia es que PM2 es mucho mas avanzada y mucho más compleja 😦


NO LO UTILICEMOS EN DESARROLLO YA QUE NOS VA AAR MAS PROBLEMAS QUE SOLUCIONES.


Con PM2 vamos a poder tener todo el codigo automatico!


PM2 stop + id => me detiene el proceso que está en ejecución con ese ID


pm2 Logs. V

My notes
Herramientas para ser más felices: Nodemon y PM2

Nodemon : Gestor de node, permite tener un proceso corriendo y observando cambios, es una herramienta que vuelve a ejecutar nuestro codigo al detectar un cambios
npm install -g nodemon
Para ejecutar en windows
npx nodemon entorno.js

PM2: Esto es mas pro que nodemon, en desarrollo no es muy util, en produccion es lo maximo
npm install -g pm2

nodemon sirve para no estar ejecutando en consola los comando de node para cada cambio que hacemos, ya que nodemon te ahorrar esos pasos y solo necesitas guardar los cambios y se ejecutan automaticamente 😃 que felices nos hace nodemon

Nodemon vs PM2

Para que ande pm2 en Windows. En powershell como administrador debe poner:

Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned
Get-ExecutionPolicy

Si tenes las politicas de ejecucion como Restricted
Debes setearlo a RemoteSigned

CHICOOOS dato interesante por si usan Python 😛 nodemon tambiein funciona con Python JAJA

Solo escriban en consola:

nodemon nombre_script.py

y funciona lo mismooo, amoooo

son maravillosas estas herramientas.!

Nodemon y PM2
Dos herramientas fundamentales en el desarrollo y monitorización del funcionamiento de node js
Nodemon.
Sirve para tener procesos que ves ejecutándose. detecta cambios, y ejecuta automáticamente el código. sudo npm install -g nodemon Nodemon
Pm2
Es un demonio administrador de procesos que me puede ayudar a administrar y mantener mi aplicación 24/7. Voy a monitorizar el código para saber si algo se rompe. Me permite ver dashboards de mi código, puedo ver que está corriendo. Puedo ver el rendimiento de mi cpu Con: pm2 stop + id —> me detiene el proceso que está en ejecución con ese ID.
sudo npm install -g pm2 PM2

La verdad estaba pensado que iba a ser muy tedioso ir a la terminal y dictar de nuevo los cambios en las variables de entorno pero ahora con estas herramientas resuelven ese problema 😃

Por que vine a conocer nodemon tan tarde despues de 1 año de estudio, Gracias Carlos.

Yo tuve este problema:

nodemon : No se puede cargar el archivo …tu ruta … porque la ejecución de
scripts está deshabilitada en este sistema.

Lo que hice para solucionarlo fue lo siguiente:

  1. Abro el powershell en modo de administrador.
  2. Ingreso lo siguiente:

Set-ExecutionPolicy Unrestricted

Y listo. 😃

Ahora ya puedo usar el comando nodemon miArchivo.js

los que tienen windows, deberian poner a bash como terminal predeterminada

https://youtu.be/EVh36sDppcs

Hola todos, les dejo mi bibliioteca de apuntes y temas que estoy armando, arranque con Node el día de hoy!!!

https://alejandria.vercel.app/categories/nodejs/

Para los que estan en windows y le sale el error que no les pernite ejecutar comandos externos. Abren la consola de powershell como adminitrados y ejecutan el siguiente comando.

Set-ExecutionPolicy Unrestricted

Luego le dan a la opcion S y listo. Ya pueden ejercutar nodemon de la siguiente manera,

nodemon script.js 

Por otra parte PM2 me hubiera ayudado mucho hace un par de años :’(

¡Este profesor es excelente! 🤓

Instalando localmente nodemon:
npm i nodemon --save-dev

Agregar una entrada de script al package.json
"nodemon":“nodemon -exec”

Inicia y autodespliega aplicacion luego de cambios en el codigo fuente.
npm run nodemon “npm start”

*El ultimo comando para instalaciones globales:
nodemon --exec “npm start”

Primera vez que escucho sobre pm2 qué gran herramienta. Me gustaría que los profesores nos dieran más seguido herramientas para cuando terminamos el desarrollo.

  1. nodemon >>> Es una utilidad que monitorea los cambios en el codigo que se esta desarrollando y automaticamente reinicia el servidor
npm i -g nodemon
  1. pm2 >>> Es un gestor de procesos en producción para las aplicaciones Node. js. PM2 permite mantener siempre activas las aplicaciones y volver a cargarlas evitando los tiempos de inactividad, a la vez que facilita tareas comunes de administrador del sistema.
npm i -g pm2
// Inicia la aplicacion
pm2 start app.js
// Valancea 4 instancias de esta aplicacion
pm2 start api.js -i 4
// Monitorizar en Produccion
pm2 monitor
// Estado de todas las aplicaciones corriendo
pm2 status
// Vemos todos los logs de nuestra aplicacion
pm2 log
// Parar la aplicacion
pm2 stop app.js       o      pm2 stop [id]

Nodemon, excelente herramienta, se me hace amigable empezar a aprender las bases de node con este tipo de utilidades

Si la terminal de Windows o la de VS Code les presenta problemas, les recomiendo utilizar Cmder,

Cmder es un paquete de software creado por pura frustración por la ausencia de buenos emuladores de consola en Windows. Está basado en un software asombroso y aderezado con el esquema de color Monokai y un diseño personalizado, luciendo genial desde el principio.

https://cmder.net/

También en el archivo package.json pueden editar esta línea de la siguiente manera:

"scripts": {
    "start": "nodemon index.js"
},

Y en la consola sólo tendrían que colocar npm start
Del mismo modo, si quieren que nodemon ignore cambios que se realicen en ciertos archivos debemos crear un archivo llamado nodemon.json y colocar lo siguiente, por ejemplo:

{   
    "ignore": [
        "archivo_a_ignorar.js"
    ] 
}

Para los que no les funcione nodemon directamente porque el sistema no admite scrips, hay que hacer un pequeño cambio desde PowerShell con _Set-ExecutionPolicy RemoteSigned _. Acá les dejo un link con más info al respecto

NODEMON VS PM2
Nodemon nos permite cada vez que guardamos, ejecutar nuestro código automáticamente. Es nuestro LIVE SERVER pero para node 😁
Pagina Oficial: https://nodemon.io
npm: https://www.npmjs.com/package/nodemon
PM2 Nos permite lo mismo que nodemon y mucho más. Es más compleja y avanzada y nos permite monitorizar nuestra aplicación 24/7
Pagina Oficial: https://pm2.keymetrics.io/
npm: https://www.npmjs.com/package/pm2

PM2 al ser más avanzado y complejo nos va a relentizar toda la ejecución de nuestro código y por eso no es recomendable utilizarlo en etapas de desarrollo y si en producción.

Generé estos scripts dentro de package.json, si es que a alguien les sirva.

"scripts": {
    "nodemon-start": "nodemon conceptos/monohilo.js",
    "pm2-start": "pm2 start conceptos/monohilo.js",
    "pm2-stop": "pm2 stop conceptos/monohilo.js",
    "pm2-log": "pm2 log",
    "pm2-status": "pm2 status"
  },

A mi me servirá como recordatorio 😎

Para las personas que usal la CLI de Ubuntu con WSL para Windows y les sale el error:

zsh: command not found: nodemon

Yo la manera en que lo solucioné fue cambiando la configuración de zsh. Yo no tengo mucha experiencia en este tema de las configuraciones de la CLI y donde npm instala globalmente los paquetes y que por medio del PATH apunta y lee estos paquetes para zsh.

Pero hasta lo que yo entendí es que el PATH no está apuntando a los paquetes globalmente instalados, por eso en la configuración que está en ~/.zshrc sugiere en la segunda línea cambiar el PATH:

# export PATH=$HOME/bin:/usr/local/bin:$PATH

Pero al descomentar esa linea no me funcionaba, así que buscando en internet encontré que la PATH correcta en ese caso debería ser:

export PATH=~/.npm-global/bin:$PATH

Con esta confiuración depués de reiniciar nuestra consola debería reconocer y estar apuntando a los paquetes globales que hemos instalados para poder usar los comandos.

Si alguien me puede explicar ocorregir si no he entendido bien relacionado a todo esto se los agradecería. Y espero que a alguien le sirva.

nodemon es para usar en desarrollo y PM2 es para produccion
Me gustaron mucho estas dos herramientas. Hay una opcion similar a nodemon que se llama supervisor, porque hace un tiempo tuve problemas y esa me salvó. Ahi el dato.

Nodemos y PM2

Nodemon es una utilidad que supervisará cualquier cambio en el codigo y reiniciará automáticamente su servidor. Lo que lo hace perfecto para el desarrollo.

Pagina: https://nodemon.io/

<h3>Algunas de sus principales funciones</h3>
  • Reinicio automático de la aplicación.
  • Detecta la extensión de archivo predeterminada para supervisar.
  • Ignorar archivos o directorios específicos.

Para activarlo colocamos simplemente en la terminal:

nodemon entorno.js

PM2 es un gestor de procesos daemon que le ayudará a administrar y mantener su solicitud en línea 24/7. Lo cual lo combierte en ideal para la produccion.

Pagina: https://pm2.keymetrics.io/

<h3>Algunas de sus principales funciones</h3>
  • Configurar el comportamiento.
  • Integra contenedores.
  • Ver y recargar.
  • Gestion de registros.
  • Sistema de modulos.
  • Modo cluster.
  • PAAS compatible.
  • Monitereo de KeyMetrics.
  • API.
  • Recarga maxima de memoria.

Para activarlo colocamos simplemente en la terminal:

pm2 start entorno.js // Arrancamos la produccion.
pm2 status // Vemos el id, name, mode, veces que se recargo, status, cpu y memory
pm2 logs // Vemos lo que esta ocurriendo con el proceso.
pm2 stop id //Tambien podemos colocar el nombre, la ruta del archivo.

¿PM2 conversa con apache? como podría hacer para el despligue usando solo PM2 o debería usar apache o ngix. cual seria la mejor forma ya que quisiera montar un server HTTPS.

que ventaja ofrece el nodemon en un proyecto de angular? cuando guardo los cambios el servidor los detecta. es verdad que de vez en cuando hay que pararlo, pero en términos generales funciona. gracias

Genial clase, que bueno cuando en los cursos ya sean los profesor o los estudiantes nos aportan herramientas que se utilizan ya sea en entorno de desarrollo o producción es un plus que poca plataformas o cursos se tiene, Genial 🔥

<h3>Herramientas para ser más felices: nodemon y PM2</h3>

Nodemon te permite revisar los cambios en modo desarrollo

PM2 es mejor para proyectos en producción

Nodemon: es una herramienta que ayuda en el proceso de desarrollar aplicaciones basadas en node.js al reiniciar automáticamente la aplicación de Node cuando se detectan cambios de archivo en el directorio.

PM2: es un administrador de procesos que ayudará a administrar y mantener solicitudes en línea.

  • Nodemon se ejecutan automáticamente, cuando detectan un cambio en nuestro código.
sudo npm install -g nodemon # enviroment dev

  • PM2, ademas de monitorear los cambios del código, permite ver dashbord y performace.
sudo npm install -g pm2 # enviroment prod

Uffff me encanto como da los cursos! uff clarisimo sin vueltas comparado con Oscar Barajas! super opuestos! un 10 para este profesor!!! clap clap! Aguante Juan Luis Guerra Hernandez!

Unas herramientas que nos ayudaran mucho en Node ya que algunas cosas pueden ser tediosas porque estamos haciendo cambios pequenos y revisando de forma constante. Nodemon es un gestor de Node como si fuera un demonio, puede tener un processo corriendo e ir observando cambios. Y cada que nodemon detecte cambios va a volver a ejecutar ese codigo. Primero para instalarlo tenemos

npm install -g nodemon

Ya que lo tengamos podemos usar nodemon y el archivo que vamos a usar

nodemon carpeta/archivos.js

Ahora cada que hagamos cambios esto se va a ir actualizando de forma automatica. Estos pueden ser cambios pequenos o cambios grandes. Pueden ser en procesos que corren una sola vez o que estan en constante. Nodemon aumentara nuestra productividad

En produccion tenemos PM2, parecido pero bastatne mas avanzada y mas compleja. No utilizar en desarrollo, ya que nos dara mas problemas que soluciones, pero podremos tener todo el codigo monitorizado y todo de forma automatica. Lo instalamos con

sudo npm install -g pm2

Ahora para inicializarlo lo hacemos con

pm2 start carpeta/archivo.js

Podremos ver que iniciaran un monton de cosas, usar varias instancias y algunas herramientas que podemos usar con pm2, como el pm2 monitor donde nos dara una key para ver todass las metricas de nuestra aplicacion. Esto es mas para aplicaciones complejas en produccion. con status podemos verl as veces revisadas, su cpu y su memoria. Para ver loss logs podemos usar

pm2 logs

y podremos ver en tiempo real los logs. Para parar todo podemos usar

pm2 stop

podemos decirle el nombre, el ID, o la ruta del archivo

Si quieren ejecutar el comando igual que el profesor estando en VSCode en windows, pueden apretar f1, luego escribir “Select Default Profile” y por ultimo elegir Gitbash. De esta manera su terminal de VSCode se volverá la terminal de Gitbash, por lo que no necesitaran cambiar los comandos a como los utilizarían en windows.

Nodemon y PM2

Nodemon es una herramienta de gestión dedicada a node que sirve como observador donde constantemente reporta los cambios realizados en nuestro código.

Instalamos en linux nuestro nodemon según el siguiente comando npm install -g nodemon y en caso de necesitar permisos de administrador simplemente anteponemos la palabra ‘sudo’, quedaría de esta forma sudo npm install -g nodemon.

Para utilizar nodemon solo debemos correr nuestro archivo según el comando nodemon ejemplo.js y listo, nodemon se encargara de escuchar todos los cambios de nuestro archivo y ejecutarlo.

PM2 es otra herramienta muy parecida a nodemon pero es mucho mas avanzada y compleja. Contiene mas features y esta enfocada a producción.

Para instalarlo podemos usar el comando npm install -g pm2 y para ser usado ejecutamos pm2 start ejemplo.js.

podremos utilizar un features como monitor, status de la app, los logs que pm2 crea al monitorizar pm2 logs, hacer un ‘stop’ de el/los hilos en ejecución según la id que nos otorga el monitor de la app pm2 stop 0.

Dato curioso de la palabra Daemon:
Según una investigación realizada por Richard Steinberg, la palabra daemon fue utilizada en 1963 por primera vez, en el área de la informática, para denominar a un proceso que realizaba backups en unas cintas. Este proceso se utilizó en el proyecto MAC del MIT y en una computadora IBM 7094.​ Dicho proyecto estaba liderado por Fernando J. Corbató, quien afirma que se basó en el demonio de James Maxwell, este daemon era una especie de vigilante que residía en medio de un recipiente dividido en dos, lleno de moléculas. El vigilante o daemon se encargaba de permitir, dependiendo de la velocidad de la molécula, que éstas pasaran de un lado al otro.

Nodemon en desarrollo.
Pm2 en producción.
Nodemon detecta cambios de forma automática, lo que nos ahorra en estar ejecutando en consola los comando de node, para cada cambio que hagamos.
Pm2 en monitorea lo que ocurre con la aplicación.

Genial… nunca había estado tan animado por un curso.

Si les da error ejecutenlo con “sudo” para hacerlo como administrador

nodemon donde estuviste cuando más te necesitaba? xD ya no sufriré tanto debuggeando mis aplicaciones gracias!!! 🙌

Suena como si fuera un Digimon 🤣

Nodemon: para desarrollo.
PM2: para producción.

Listo!! ahora viene lo bueno, a seguir con toda!!

Gracias, por los tips, vamos adelante con NodeJS

nodemon: npm install -g nodemon (Mejor para desarrollo)
pm2: npm install -g pm2 (Mejor para producción)

Pm2 se podria hacer un curso completo. Imagino

Productividad al tope === nodemon & pm2

Excelente pm2,muy completo

Los que tienen Windows 10 y no les funciono nodemon en VSC, corran el proyecto en cmd

🙄 PM2 es un administrador de procesos para aplicaciones Node.js. Es una herramienta que permite administrar procesos de manera sencilla, garantizando la estabilidad y el rendimiento de la aplicación en producción.

PM2 proporciona muchas funciones útiles, como la gestión de múltiples instancias de la aplicación, la supervisión del estado de la aplicación, la configuración de variables de entorno y la implementación de la aplicación en producción.

Además, PM2 tiene características avanzadas como el equilibrio de carga y la capacidad de escalar horizontalmente, lo que significa que puede administrar automáticamente el aumento de la carga de trabajo al agregar o eliminar instancias de la aplicación según sea necesario.

En resumen, PM2 es una herramienta muy útil para cualquier desarrollador de Node.js que desee administrar sus aplicaciones de manera eficiente y escalable en producción.

en linux
los que tuvieron problemas al instalar/usar PM2
hagan estos pasos
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

luego usen el siguiente comando para usar PM2 en la raiz del proyecto

npx pm2 start api/index.js

aplica tambien a nodemon

En Mac lo instalas de forma global así:
sudo npm install -g nodemon

No se si les pase pero a mi se me pego esa costumbre de estar aplastando ctrl + s para guardar cada que escribo una linea de codigo y el nodemon ejecutandose cada momento jej

Si estas utilizando WSL2 en Windows 11 y quieres ejecutar Nodemon, lo debes hacer en modo legacy para que pueda escuchar los cambios:

nodemon -L entorno.js

o tambien:

nodemon --legacy-watch entorno.js

Herramientas para ser más felices: Nodemon y PM2

Una vez conocemos los conceptos basicos de ejecucion de nodejs, y sabemos como adicionar informacion desde el exterior hacia nuestro codigo con las variables de entorno, es momento de que veamos tambien el uso de herramientas que nos facilitaran el proceso de construccion de nuestro codigo.

Y ahora veremos el uso de Nodemon

Nodemon es una herramienta de monitirizacion para node.js y cualquier aplicacion basada en node. Esta herramienta reinicia automaticamente la aplicacion node cuando se detectan cambios en los archivos. Esto nos ayuda a no tener que ejecutar nuevamente el comando node con el nombre del archivo puesto que nodemon detecta que la aplicacion sufrio un cambio y reinicia la ejecucion.

  • Para instalar nodemon lo podemos hacer desde la consola con el comando:
npm install -g nodemon

Para usar nodemon podemos remplazar “node entorno.js” como lo haciamos con node, por:

nodemon entorno.js

PM2 es una herramienta de monitorizacion muy similar a nodemon, pero con la diferencia de que PM2 tiene algunas funciones un poco mas avanzadas que nodemon, por lo anterior PM2 se recomienda ejecutar en ambientes de produccion ya que las funciones de monitorizacion y deteccion de errores son mucho mas avanzadas.

Para instalar pm2 podemos tambien instalarlo por medio de la consola con el comando:

npm install pm2 -g

Para usar pm2 podemos usar los comandos basicos:

  • inicar pm2:
pm2 start entonrno.js
  • Para ver una vista de monitorizacion:
pm2 status
  • Para ver los logs de ejecucion:
pm2 logs

Para iniciar pm2 en windows es:

npx pm2 start

npm i -g nodemon 🚀

para inslar en windows

npm i -g nodemon

ejecutarlo:

nodemon nombrearchivo.js 

Si les llega a saltar error corriendo este comando solucionan especialmente en linux y mac:
sudo chown -R $USER /usr/local/lib/node_modules

Pásate a GNU / Linux…

Mejor utilizar pm2 en producción porque en desarrollo da más problemas que soluciones

Excelente lo de pm2, me ha tocado realizar poca cosa en node que no requiere un monitoreo, pero tener esta libreria en cuenta no esta de mas.