2012-09-15 24 views
13

Si usted tiene su nodo que ejecuta¿Cómo se depura un servidor Node.js que se ejecuta con Chrome/WebKit como el depurador remoto?

node --debug server.js 

Esto me da un número de puerto xxxx, debo utilizar este número de puerto cuando se inicia Chrome?

¿Depura usted remotamente desde Google\ Chrome --remote-debugging-port=xxxx?

O es el 9222 un puerto mágico, como se menciona en todo.

estoy en el camino correcto, tratando de iniciar Chrome con --remote-debugger en el Node.js server.js

Respuesta

10

El nodo-inspector/--debug se sustituyen ahora por el inspector ver Boletín continuación

#now deprecated/see below for update 

#install node-inspector 
npm install -g node-inspector 

#start node-inspector, listen on port 8080 (default) 
node-inspector --web-port=8080 

#in another terminal session/window: 
#while node-inspector is running, start your project in debug mode 
node --debug myproject.js 

Ahora se puede navegar a http://your_server:8080 para una sesión de depuración completa de myproject.js

Si su servidor remoto no es accesible en el puerto remoto debido a firewalls u otras razones, puede crear un túnel ssh desde el puerto 8080 en su máquina local a 'localhost: 8080' en el servidor remoto:

ssh -L 8080:localhost:8080 [email protected] -N 

y mantener esto en marcha mientras se utiliza http://localhost:8080 en el equipo local para depurar su sesión nodejs remota


actualización de agosto de 2017

nodo de inicio en el modo de inspeccionar:

node --inspect=0.0.0.0:9229 myproject.js 

o si desea que el depurador se rompa en la primera línea de mi proyecto .JS:

node --inspect-brk=0.0.0.0:9229 myproject.js 

a continuación, abra la siguiente URL en su navegador chrome:

chrome://inspect 

Haga clic en 'Configurar ...' botón y añaden el siguiente objetivo:

ip-or-name-of-server-running-node:9229 

Después haga clic en el botón 'Listo', debería ver myproject.js debajo de sus objetivos remotos. Haga clic en el enlace inspeccionar para iniciar la depuración. Desafortunadamente, el enlace de inspección no funciona en Chrome 58 para Ubuntu. Funciona bien en Chrome 60 para Windows.

+0

¿Sabes si tengo que iniciar el inspector de nodos explícitamente como en tu ejemplo cuando ejecuto un servidor de meteoritos? – Gobliins

+0

Gracias! Funciona bien para mí con 'chrome: // inspect /', sin embargo falla con VS Code (Attached pero los puntos de interrupción no funcionan) e IntelliJ IDEA (Imprime "Connecting to ip ...") y no ocurre nada más. –

+0

para inspeccionar para siempre y volver a cargar cuando lo guarde, use este nodo 'forever -w -c' --inspect = 127.0.0.1: 3333 'file.js' – DarckBlezzer

9

Uso node-inspector para depurar de forma remota la aplicación de Chrome nodo que ha comenzado con la opción --debug como se haya mostrado.

0
  • usando ssh vagabundo $ - -L 5858: 127.0.0.1: 5858

    to ssh connect to VM. also this comment would start a proxy server on port 5858; 
    
  • podría probar mediante telnet 127.0.0.1 5858 para ver si el servidor proxy local inicia o no.

  • En VM, puede iniciar el nodo con el comando

  • $ nodo --debug-BRK app.js

  • configurar configuración de depuración en la tormenta web.
  • cuando se inicia la depuración en la tormenta web, el servidor node.js en la máquina virtual comenzará en unos segundos.

PD: no es necesario tocar el archivo vagabundo. Referencia: Connecting WebStorm to a remote node.js debugging session.

+0

Gracias, esto funciona. – arcseldon

4

Las versiones recientes de Node (> v6.3.0) y Chrome ahora le permiten usar las Herramientas de desarrollo de Chrome al debug a Node.JS process sin tener que instalar nada más. Sólo tiene que pasar a --inspectnode:

$ node --inspect script.js 

Debugger listening on port 9229. 
Warning: This is an experimental feature and could change at any time. 
To start debugging, open the following URL in Chrome: 
    chrome-devtools://SOME-URL-HERE 

Sólo tiene que abrir esa URL en Chrome, y ya está bueno para ir.

Si necesita detener la secuencia de comandos inmediatamente después de iniciar el nodo, también puede pasar --debug-brk en el mismo comando.

Cuestiones relacionadas