with run protocol node manager google debugger debug chrome attach javascript debugging node.js node-inspector gruntjs

javascript - protocol - Usar el inspector de nodos con las tareas de Grunt



node-inspector npm (6)

¿Alguien utilizó node-inspector con Grunt para la depuración de aplicaciones? Si no, ¿puedes recomendar una herramienta de depuración para las aplicaciones basadas en Grunt?

Estoy trabajando con nodejs para una aplicación del lado del servidor y tengo a Grunt para usar tareas separadas (esto se debe a que los usuarios pueden ejecutar tareas por separado).


Solución de Windows

correr

node --debug-brk c:/Users/username/AppData/Roaming/npm/node_modules/grunt-cli/bin/grunt taskname

de cmd en el directorio con tu Gruntfile.js . No te olvides de poner el debugger; alinear en los lugares necesarios.


Grandes respuestas aquí. En 2017, ahora puedes hacer

node --inspect --debug-brk $(which grunt) taskName

Que imprime algo así como.

To start debugging, open the following URL in Chrome: chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/232652c3-f63c-4b00-8de9-17dfad5db471

Abre esa URL en cromo, ¡y listo!

Estoy usando Nodo 7.3.0 y estoy en Mac. Es posible que deba seguir algunos consejos en otras publicaciones para que funcione en Windows.



He hecho una tarea para ejecutar mi aplicación y ejecutar node-inspector. Es mucho mejor que la proposición actual, solo tiene que agregar esta tarea en gruntfile:

grunt.registerTask(''debug'', ''My debug task.'', function() { var done = this.async(); grunt.util.spawn({ cmd: ''node'', args: [''--debug'', ''app.js''], opts: { //cwd: current workin directory } }, function (error, result, code) { if (error) { grunt.log.write (result); grunt.fail.fatal(error); } done(); }); grunt.log.writeln (''node started''); grunt.util.spawn({ cmd: ''node-inspector'', args: [''&''], opts: { //cwd: current workin directory } }, function (error, result, code) { if (error) { grunt.log.write (result); grunt.fail.fatal(error); } done(); }); grunt.log.writeln (''inspector started''); });


Para depurar, tenemos que modificar el archivo grunt en bin. En mi máquina, grunt está instalado globalmente, así que fui a / usr / local / lib / node_modules / grunt / bin Abrí el archivo y lo modifiqué:

#!/usr/bin/env node

A

#!/usr/bin/env node --debug-brk

--debug-brk se romperá en la primera línea de javascript ejecutado.

Sin embargo, hacer eso solo no es suficiente, ya que no podrás encontrar tu archivo js de tarea ronca en el menú desplegable en el inspector de nodos, por lo que debes modificar el debugger; que estás interesado en depurar añadiendo debugger; donde quieres que suceda el punto de inflexión. Ahora puede hacer clic en continuar después del primer descanso, y verá que está debugger; línea

Bastante kludgy, pero es la única forma que he encontrado hasta ahora.


Para ejecutar grunt en depuración, debe pasar la secuencia de comandos grunt al nodo explícitamente:

node-debug $(which grunt) task

y pon un debugger; línea en tu tarea. node-inspector luego abrirá un navegador con herramientas de depuración.

Editar 28 Feb 2014

node-inspector ha agregado el comando node-debug , que inicia el nodo en un estado --debug y abre el navegador a la página del node-inspector , deteniéndose cuando llega a la primera línea del debugger o establece un punto de interrupción.

Editar 30 de enero de 2015

En Windows, las cosas son un poco más complicadas. Consulte la respuesta de @ e.gluhotorenko para obtener instrucciones.