javascript - start - nodemon express
¿Ejecutando nodo-inspector junto a nodemon? (7)
Debe instalar node-inspector y nodemon utilizando:
npm install -g nodemon
npm install -g node-inspector
Para ejecutar en Windows, cree un nuevo archivo .bat y agregue las siguientes líneas:
@echo off
echo Starting developer enviroment of the file %1
start nodemon --debug-brk %1
node-debug %1
Y correr:
node_desarrollo.bat "nombre del archivo a run.js"
Si se ejecuta con un error:
Error: listen EADDRINUSE :::5858
at Object.exports._errnoException (util.js:855:11)
at exports._exceptionWithHostPort (util.js:878:20)
at Agent.Server._listen2 (net.js:1237:14)
at listen (net.js:1273:10)
at Agent.Server.listen (net.js:1369:5)
at Object.start (_debug_agent.js:21:9)
at startup (node.js:72:9)
at node.js:980:3
Es normal porque el inspector de nodos necesita abrir ese puerto para conectarse pero porque el nodemon --debug-brk %1
se abrió, el puerto 5858 no puede abrirse y muestra el error EADDRINUSE :::5858
, tenga en cuenta que el indicador --debug-brk
de nodemon es necesario hacer un punto de interrupción en la primera línea. Intente modificar el archivo.js después de ejecutar el .bat y observe los cambios reflejados en el depurador. Este depurador se reinicia y muestra los cambios realizados en el archivo.js. Feliz codificación JS !!!
Actualmente estoy usando nodo junto con nodemon . Luego me puse a pensar que a veces podría ser bueno usar un inspector con nodo, así que he comenzado a usarlo.
Sin embargo, ¿es posible ejecutar ambos al mismo tiempo?
Normalmente para ejecutar nodemon yo usaría:
nodemon server.js
//and similarly
node-debug server.js
También he intentado:
nodemon --debug http.js
Pero lamentablemente esto tampoco funcionó.
Pero ambos juntos?
Mientras ejecuto Linux, escribí un script bash basado en la respuesta de rpaskett para que no tenga que recordar ese extraño comando cada vez.
Sin embargo me di cuenta en un comentario que estás ejecutando Windows. Aquí hay algunas opciones que tiene:
Puede convertir el script de bash en un lote de Windows y guardarlo como C:/Windows/System32/node-DEV.bat
. Lo hice y funciona en mi PC con Windows:
@echo off
echo Starting DEV environment for %1
start node-inspector
nodemon --debug %1
Entonces deberías poder ejecutar node-DEV server.js
.
Otra opción; se podría ejecutar algo como nodedev que se escribió en Node.js, por lo tanto, plataforma independiente, aunque parece que no se ha actualizado en mucho tiempo.
O incluso podría ejecutar el script bash en un entorno Cygwin si tuviera uno a mano.
No pude conseguir que nodemon jugara bien con el inspector de nodos. Después de un cambio se reiniciaría pero después de eso no más. Tal vez sea porque estoy usando contenedores docker.
La forma más fácil de recargar la aplicación es dejar que el inspector de nodos lo haga (sé que esto no es una respuesta para que ambos ejecuten, pero funcionó para mí).
Inicie su aplicación de la siguiente manera:
node-inspector --save-live-edit & /
node --debug /app/server.js
Para aquellos que quieren una solución independiente del sistema operativo y no hacks para Windows, etc.
Puede usar npm-run-all, que es una herramienta CLI que permite ejecutar múltiples scripts npm en paralelo o secuencialmente. Así que configurarías tu package.json así:
"scripts": {
"start": "npm-run-all --parallel lint start:debug start:server",
"lint": "eslint . --ext .js",
"start:debug": "node-debug server.js",
"start:server": "nodemon server.js"
}
Y luego desde CLI, haces: npm start
Advertencia: en mi experiencia, ejecutar nodemon y node-debug juntos conduce a comportamientos extraños de inspector de nodos a veces. Así que desde entonces opté por eliminar nodemon de mis scripts al depurar y confiar en la función de edición en vivo de los inspectores de nodos para cambiar archivos sobre la marcha.
Si desea ejecutarlos como un solo comando, esto me funciona: node-inspector & nodemon --debug app.js
(reemplazando app.js con el nombre de su script). Si las cosas se complican, de vez en cuando tendrá que matar manualmente el inspector de nodos, pero ejecutar el comando de esta manera le da la opción de ejecutar rs
para reiniciar manualmente nodemon si es necesario. HTH
Una solución pirata para los usuarios de Windows que ejecutan un shell bash:
Primero, agregue el inspector de nodos a su ruta. (Puede encontrar dónde npm está instalando paquetes con npm list -g
)
Luego use este comando en bash, o agréguelo a sus scripts npm:
START /B node-inspector && nodemon --debug server.js
START /B
es el comando de Windows para ejecutarse en segundo plano.
nodemon --debug server.js
iniciar su servidor con nodemon --debug server.js
y luego deberá ejecutar el inspector de nodos en una ventana de terminal separada a menos que empuje a nodemon al fondo.