visual studio nodejs node debug code chrome node.js debugging breakpoints

node.js - studio - node-inspector



Cómo deshabilitar en el depurador del nodo "break on first line" (6)

¿Existe un argumento de línea de comando o una variable de entorno que deshabilita la función "romper en primera línea" del depurador de nodos?


Escriba una extensión de cromo para hacer clic en el botón de inicio

1. Ejecutar shell

mkdir run_as_devtools cd run_as_devtools touch manifest.json touch run_as_devtools.js

2. Edita los archivos

run_as_devtools.js:

if (location.protocol === ''chrome-devtools:'' && location.href.match(/ws=localhost/))(function () { ''use strict''; setTimeout(function () { try { document.querySelector(''html /deep/ .long-click-glyph'').click(); } catch (e) { console.log(e); } }, 500); })();

manifest.json: (usa la clave de chromevox, así que no lo uses con chromevox)

{ "content_scripts": [{ "js": [ "run_as_devtools.js" ], "matches": [ "<all_urls>" ] }], "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEGBi/oD7Yl/Y16w3+gee/95/EUpRZ2U6c+8orV5ei+3CRsBsoXI/DPGBauZ3rWQ47aQnfoG00sXigFdJA2NhNK9OgmRA2evnsRRbjYm2BG1twpaLsgQPPus3PyczbDCvhFu8k24wzFyEtxLrfxAGBseBPb9QrCz7B4k2QgxD/CwIDAQAB", "manifest_version": 2, "name": "Elevated Devtools extension", "version": "1.0" }

3. Instala la extensión

Configuración de Chrome - Más herramientas - Extensiones - Modo de desarrollador - Cargar la extensión desempaquetada - seleccionar la carpeta run_as_devtools

PD: Mejor usarlo con el administrador del inspector de nodos https://.com/a/43018133/4831179

Referencia: https://.com/a/17044405/4831179


De acuerdo con este problema que he abierto en el repositorio del node , actualmente, esto no es posible. Esto también es algo que los nodos no ven como una característica que vale la pena implementar "porque parece algo sin sentido. [...] La vinculación a un proceso en ejecución hace exactamente" lo mismo ". Vea el resto de la discusión en el tema mencionado.

Si crees que quieres una función así, vota esto, deja un comentario en el número de Github y, si no hay respuesta, abre uno nuevo y publícalo aquí también.


En realidad, hay dos conceptos de depuración en el nodo: el depurador V8 (con su protocolo basado en TCP) y un depurador de línea de comandos del nodo (CLI).

Cuando ejecuta la node debug app.js , se ejecuta una CLI de depurador en el proceso de nodo maestro y se genera un nuevo proceso de nodo secundario para la secuencia de comandos depurada ( node --debug-brk app.js ). La opción --debug o --debug-brk se utiliza para activar el depurador V8 en el proceso hijo.

La diferencia entre --debug y --debug-brk es que este último agrega un punto de interrupción en la primera línea, por lo que la ejecución se detiene inmediatamente allí.

Sugeriría esta solución:

  1. Cuando está creando un proceso hijo desde su servidor web, ejecute node --debug lugar de node debug de node debug . De esta forma, solo se crea un proceso secundario, ejecuta su aplicación y no se pausa en la primera línea.

  2. Ahora puede usar cualquier herramienta de depuración que admita el protocolo de depuración V8: depurador de CLI incorporado en el node-inspector o puede implementar su propia interfaz de depurador (GUI) si lo desea. (Supongo que esto es lo que intenta lograr ejecutando el depurador CLI en segundo plano).

    Si decidió usar la CLI incorporada, solo genere otro proceso secundario y diga al depurador de la CLI del nodo que se conecte con el proceso iniciado en el paso 1:

    node debug localhost:5858

    y continuar como antes.


Encontré esto mientras buscaba la respuesta yo mismo - Parece que simplemente puedes correr

node-debug --debug-brk=0 (progname)

Espero que esto ayude a alguien.


Resolví el mismo problema simplemente cambiando del nodo v6 al v7


Similar a la idea de Blackmiaool pero más simple, con el nodo v8 puede iniciar la secuencia de comandos con --inspect. Si tiene el siguiente código, cuando abra la ventana de depuración en Chrome devtools lo llevará directamente al punto de depuración. Además, esto le permite ejecutar el código asincrónico pulsando el botón "continuar", que permite que su código se ejecute antes de regresarlo a la réplica:

// app_shell.js var UserModel = require("./some_user_model"); function looper() { var Tmp = { UserModel: UserModel }; debugger; setTimeout(looper, 100); } looper();

Y en un script de shell puede hacer algo como:

echo "Click the ''Open dedicated DevTools for Node'' link" python -mwebbrowser about:inspect node --inspect app_shell.js

vea aqui para mas informacion