javascript - visual - node-inspector




¿Cómo depuro las aplicaciones Node.js? (20)

El nodo tiene su propio depurador de GUI incorporado a partir de la versión 6.3 (utilizando las herramientas de desarrollo de Chrome)

Simplemente pase el indicador de inspector y se le proporcionará una URL para el inspector:

node --inspect server.js

También puede interrumpir en la primera línea pasando --inspect-brk en --inspect-brk lugar.

Para abrir una ventana de Chrome automáticamente, use el módulo de inspect-process .

# install inspect-process globally
npm install -g inspect-process

# start the debugger with inspect
inspect script.js

¿Cómo depuro una aplicación de servidor Node.js?

Ahora mismo estoy utilizando principalmente la depuración de alertas con declaraciones de impresión como esta:

sys.puts(sys.inspect(someVariable));

Debe haber una mejor manera de depurar. Sé que Google Chrome tiene un depurador de línea de comandos. ¿Este depurador también está disponible para Node.js?


Depuración

Perfilado

  1. node --prof ./app.js
  2. node --prof-process ./the-generated-log-file

Heapdumps

Flamegraphs

Rastreo

Explotación florestal

Bibliotecas que generan información de depuración

Bibliotecas que mejoran la información de seguimiento de la pila

Benchmarking

Otro

Legado

Estos funcionan para funcionar pero ya no se mantienen o ya no son aplicables a las versiones modernas de nodos.


Comience el proceso de su nodo con la bandera --inspect .

node --inspect index.js

y luego abrir chrome://inspect en chrome. Haga clic en el enlace "Abrir DevTools dedicado para nodo" o instale this extensión de Chrome para abrir fácilmente DevTools de Chrome.

Para más información consulte this enlace.



Escribí un enfoque diferente para depurar el código Node.js que es estable y es extremadamente simple. Está disponible en https://github.com/s-a/iron-node .

Un depurador visual multiplataforma de código abierto.

Instalación:

npm install iron-node -g;

Depurar:

iron-node yourscript.js;




Muchas respuestas excelentes aquí, pero me gustaría agregar mi punto de vista (en función de cómo evolucionó mi enfoque)

Registros de depuración

Afrontémoslo, a todos nos encanta una buena console.log('Uh oh, if you reached here, you better run.') y eso funciona muy bien, así que si eres reticente a moverte demasiado lejos, al menos agrega. Algunos bling a sus registros con la depuración de Visionmedia .

Depuración interactiva

Tan útil como el registro de la consola puede ser, para depurar profesionalmente, necesita remangarse y atascarse. Establezca puntos de interrupción, paso a través de su código, inspeccione los ámbitos y las variables para ver qué está causando ese extraño comportamiento. Como otros han mencionado, node-inspector es realmente las rodillas de las abejas. Hace todo lo que puede hacer con el depurador incorporado, pero utilizando esa interfaz familiar de Chrome DevTools. Si, como yo, usas Webstorm , here tienes una guía práctica para depurar desde allí.

Trazas de pila

De forma predeterminada, no podemos rastrear una serie de operaciones en diferentes ciclos del bucle de eventos (tics). Para solucionar esto, eche un vistazo a longjohn (¡pero no en producción!).

Pérdidas de memoria

Con Node.js podemos tener un proceso de servidor que se espera que permanezca activo durante un tiempo considerable. ¿Qué haces si crees que ha surgido algunas fugas desagradables? Use heapdump y Chrome DevTools para comparar algunas instantáneas y ver qué está cambiando.

Para algunos artículos útiles, echa un vistazo a

Si tienes ganas de ver un video (s) entonces

Cualquiera que sea la ruta que elija, solo asegúrese de entender cómo está depurando

Es algo doloroso
Para ver tu propio problema y saberlo.
Que tú mismo y nadie más lo haya hecho.

Sófocles, ajax


Personalmente uso JetBrains WebStorm ya que es el único IDE de JavaScript que he encontrado, lo que es excelente tanto para el frontend como para el backend de JavaScript.

Funciona en varios sistemas operativos y tiene la depuración Node.js integrada (así como un montón de otras cosas) ( http://www.jetbrains.com/webstorm/features/index.html ).

Mis únicos 'temas' / artículos de la lista de deseos son eran :

  1. Parece tener más hambre de recursos en Mac que en Windows Ya no parece un problema en la versión 6.
  2. Sería bueno si tuviera soporte para Snippets (como los de Sublime Text 2 , es decir, escriba 'diversión' y toque 'pestaña' para poner una función). Vea el comentario de @WickyNilliams a continuación: con las plantillas en vivo también tiene soporte de fragmentos.


Si está utilizando el IDE de Atom , puede instalar el paquete de node-debugger del node-debugger .


Si necesita una biblioteca de registro potente para Node.js, Tracer es una mejor opción.

Da salida a los mensajes de registro con una marca de tiempo, un nombre de archivo, un nombre de método, un número de línea, una ruta o una pila de llamadas, una consola de color compatible y una base de datos de soporte, un archivo y un transporte de flujo fácilmente. Yo soy el autor


Usando la versión 67.0.3396.62 de Chrome (+)

  1. Ejecutar aplicación de nodo

nodo --inspect-brk = 0.0.0.0: 9229 server.js (nombre de archivo del servidor js)

  1. Busca tu aplicación en Chrome, por ejemplo, "localhost: puerto"
  2. Abre DevTools.
  3. Haga clic en el icono del nodo junto al icono del dispositivo receptivo.

Habrá otra ventana de DevTools que se abrirá específicamente para la aplicación del nodo de depuración.



node-inspector podría salvar el día! Úsalo desde cualquier navegador que soporte WebSocket . Puntos de interrupción, perfilador, codificación en tiempo real, etc. Es realmente impresionante.

Instalalo con:

npm install -g node-inspector

Entonces corre:

node-debug app.js


Brackets es un proyecto de investigación de Adobe que le permite depurar su código Node.js en sus Brackets editor de código abierto. Tiene algunas características interesantes como cobertura de código en tiempo real, inspección retroactiva, árbol de llamadas asíncronas.


pry.js una pequeña herramienta llamada pry.js que puede ayudarte.

Coloque una declaración simple en algún lugar de su código, ejecute su secuencia de comandos normalmente y el nodo detendrá el hilo actual que le dará acceso a todas sus variables y funciones. Ver / editar / eliminarlos a voluntad!

pry = require('pryjs')

class FizzBuzz

  run: ->
    for i in [1..100]
      output = ''
      eval(pry.it) # magic
      output += "Fizz" if i % 3 is 0
      output += "Buzz" if i % 5 is 0
      console.log output || i

  bar: ->
    10

fizz = new FizzBuzz()
fizz.run()

IntelliJ funciona maravillosamente para Node.js.

Además, IntelliJ apoya bien el 'Código de Asistencia'.


El código de Visual Studio será mi elección para la depuración. No hay gastos generales de instalación de herramientas o npm install cosas. Simplemente configure el punto de inicio de su aplicación en package.json y VSCode creará automáticamente un archivo de configuración dentro de su solución. Se basa en Electron , en el que se construyen editores como Atom.

VS Code ofrece una experiencia de depuración similar a la que podría haber tenido en otros IDEs como VS, Eclipse, etc.





google-chrome-devtools