Pregunta ¿Cómo depuro las aplicaciones Node.js?


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

En este momento estoy usando principalmente eliminación de alertas con declaraciones impresas como esta:

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

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


1394
2017-12-15 22:50


origen


Respuestas:


nodo-inspector podría salvar el día! Úselo desde cualquier navegador compatible WebSocket. Puntos de interrupción, generador de perfiles, codificación en vivo, etc. Es realmente increíble.

Instalarlo con:

npm install -g node-inspector

Entonces corre:

node-debug app.js

1193
2017-10-15 17:17



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 rastreo de pila

Benchmarking

Otro

Legado

Estos suelen funcionar, pero ya no se mantienen o ya no son aplicables a las versiones de nodo modernas.


672
2018-05-12 21:37



los V8 depurador lanzado como parte de Google Herramientas de desarrollo de Chrome se puede usar para depurar scripts de Node.js. Una explicación detallada de cómo funciona esto se puede encontrar en Node.js GitHub wiki.

También hay ndb, un depurador de línea de comandos escrito en Node.js.


208
2018-03-29 08:57



Nodo tiene su propio construido en Depurador GUI a partir de la versión 6.3 (utilizando las DevTools de Chrome)

Nodes builtin GUI debugger

Simplemente pase el indicador del inspector y se le proporcionará una URL al inspector:

node --inspect server.js

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

Para abrir una ventana de Chrome automáticamente, use la inspeccionar-proceso módulo.

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

# start the debugger with inspect
inspect script.js

151
2017-09-14 14:51



La versión 0.3.4+ de Node.js tiene soporte de depuración incorporado.

node debug script.js

Manual: http://nodejs.org/api/debugger.html


83
2018-01-16 01:20



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

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

Mis únicos ítems 'issues' / wishlist son  fueron:

  1. Parece que necesita más recursos en Mac que Windows Ya no parece un problema en la versión 6.
  2. Sería bueno si tuviera soporte para Snippet (como los de Sublime Text 2 - es decir, escribe 'diversión' y toca 'tab' para poner en una función. Consulte el comentario de @WickyNilliams a continuación: con Live Templates también tiene soporte para fragmentos.

52
2018-05-03 14:42



Código de Visual Studio será mi elección para la depuración. Sin 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. Está basado en Electrón, en el que editores como Atom se construyen.

VS Code brinda una experiencia de depuración similar a la que podría tener   tenía en otros IDEs como VS, Eclipse, etc.

enter image description here enter image description here


52
2018-02-19 10:21



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

screenshot


36
2018-05-14 22:21



Aquí hay muchas respuestas excelentes, pero me gustaría agregar mi opinión (en función de cómo evolucionó mi enfoque)

Registros de depuración

Seamos realistas, todos amamos a un buen console.log('Uh oh, if you reached here, you better run.') y a veces eso funciona muy bien, así que si eres reticente a alejarte demasiado de él, al menos agrega un poco de brillo a tus registros con Depuración de Visionmedia.

Depuración interactiva

Tan útil como puede ser el registro de la consola, para depurarlo profesionalmente, debe arremangarse y atascarse. Establezca puntos de interrupción, recorra su código, inspeccione ámbitos y variables para ver qué está causando ese comportamiento extraño. Como otros han mencionado, nodo-inspector Realmente son las abejas-rodillas. Hace todo lo que puede hacer con el depurador integrado, pero utilizando la interfaz familiar de Chrome DevTools. Si, como yo, usas Tormenta web, entonces aquí es una guía práctica para la depuración desde allí.

Stack Traces

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

Pérdidas de memoria

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


Para algunos artículos útiles, echa un vistazo

Si te apetece ver un video (s), entonces

Cualquiera sea la ruta que elijas, solo asegúrate de entender cómo estás depurando

enter image description here

Es algo doloroso
Para ver tu propio problema y saber
  Que tú mismo y nadie más lo ha logrado

Sófocles, Ajax


31
2017-09-15 15:33



Herramientas de Node.js para Visual Studio 2012 o 2013 incluye un depurador. El resumen aquí indica "Las herramientas de Node.js para Visual Studio incluyen soporte completo para depurar aplicaciones de nodos". Como soy nuevo en Node.js, pero tengo experiencia en .NET, he encontrado que este complemento es una gran manera de depurar las aplicaciones de Node.js.


21
2018-05-02 12:30



Código de Visual Studio tiene muy buen soporte para la 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 ...


19
2017-09-09 00:08