visual studio node manager debuggear debug code chrome app javascript node.js debugging google-chrome-devtools

javascript - studio - ¿Cómo depuro las aplicaciones Node.js?



node js v8-- inspector manager nim (30)

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.


Asumiendo que tiene el inspector de nodos instalado en su computadora (si no, simplemente escriba ''npm install -g node-inspector'') solo tiene que ejecutar:

node-inspector & node --debug-brk scriptFileName.js

Y pegue el URI desde la línea de comandos en un navegador WebKit (Chrome / Safari).


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


Una forma rápida y sucia de depurar pequeños scripts de Node.js con su depurador de navegador favorito sería usar browserify . Tenga en cuenta que este enfoque no funciona con ninguna aplicación que requiera bibliotecas de E / S nativas, pero es lo suficientemente bueno para la mayoría de los scripts pequeños.

$ npm install -g browserify

Ahora mueva todas sus llamadas var x = requires(''x'') a un archivo requires.js y ejecute:

$ browserify requires.js -s window -o bundle.js

(La desventaja aquí es que tienes que mover o comentar los requires en todos tus archivos).

Incluya el bundle.js en un archivo HTML así:

<script type="text/javascript" src="bundle.js"></script>

Ahora cargue el archivo en su navegador y presione F12 y viola: depurar en el navegador.


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.



Yo usaría GOOD by Walmart Labs. Hará el trabajo, y es muy flexible:

var hapi = require(''hapi''); var good = require(''good''); var server = hapi.createServer(''localhost'', 5000,{}); server.route({SOME ROUTE HERE}); server.start(); var options = { subscribers: { ''console'': [''ops'', ''request'', ''log'', ''error''], ''http://localhost/logs'': [''log''] } }; server.pack.require(''good'', options, function (err) { if (!err) { console.log(''Plugin loaded successfully''); } });


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



Visual Studio Code tiene un excelente soporte de depuración de Node.js. Es gratuito, de código abierto y multiplataforma y se ejecuta en Linux, OS X y Windows.

Incluso puedes depurar tareas de gruñido y trago , en caso de que necesites ...


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()


Las herramientas Node.js para Visual Studio 2012 o 2013 incluyen un depurador. La descripción general here indica que "Node.js Tools para Visual Studio incluye soporte completo para la depuración de aplicaciones de nodo". Siendo nuevo en Node.js, pero con antecedentes en .NET, he encontrado que este complemento es una excelente manera de depurar las aplicaciones de Node.js.


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.


node-debug -p 8888 scriptFileName.js