Consola/Depurador de Node.js para Windows

Estoy buscando una buena alternativa de consola para usar con Node.js. Actualmente estoy usando Console2 , pero quiero algunos controladores console.logde expansión/contracción cuando invoco objetos javascript; Al igual que cualquier consola de navegador web moderna (Webkit, Chrome, por ejemplo).

Una solución remota es aceptable. Como una ventana de consola webkit conectada de forma remota a una sesión de consola cmd.

Debe tener:

  • Objetos plegables (expandir/contraer) (y matrices...)
  • Admite bondad de texto en color
  • Funciona como una consola normal (como Windows cmd). flecha arriba, etc.
  • Admite atajos de teclado para copiar (ctrl+c), pegar (ctrl+v)

Agradable para tener:


Proyectos que he encontrado:

  • El archivo Léame de UltraREPL dice que los objetos plegables están "En curso".
  • Node Inspector , que pensé que era perfecto, pero resulta que su consola es solo un cliente REPL que no imprime las console.log STDOUTllamadas en scripts. Node Inspector es realmente solo para inspeccionar variables y agregar puntos de interrupción.
  • Chrome Logger es el más cercano hasta ahora, pero necesita un objeto de respuesta para aprovecharlo, lo que lo hace muy inutilizable si no está utilizando el nodo como servidor web.

Otras preguntas:

Yo uso ConEmu . No admite objetos plegables, pero es un proyecto activo y el desarrollador está abierto a sugerencias. Podría valer la pena enviar uno con esa característica
@Timmy Agregué un hilo de discusión en ConEmu sobre cómo agregar los objetos de JavaScript plegables . Encontré Node Inspector , que pensé que era perfecto, pero resulta que su consola es solo un cliente REPL que no imprime las console.logllamadas en scripts. Node Inspector es realmente solo para inspeccionar variables y agregar puntos de interrupción.

Respuestas (2)

devtool:npm install devtool -g

Ejecuta programas Node.js dentro de Chrome DevTools (usando Electron ).

Esto le permite perfilar, depurar y desarrollar programas típicos de Node.js con algunas de las funciones de Chrome DevTools.

Use el devtoolcomando en lugar de node:devtool myscript.js

Mono de nodo :npm install node-monkey

Captura todo lo que normalmente se registraría en la terminal, [...] y lo pasa al navegador donde luego se registra en la consola para su inspección.

Esto utiliza la consola Javascript de herramientas de desarrollador incorporada real de Chrome ( webkit ) para la salida.

  1. Incluya NodeMonkey en su secuencia de comandos:var nomo = require('node-monkey').start({port: 50501});
  2. Abra http://127.0.0.1:50501e inspeccione el elemento, etc. para abrir la consola del desarrollador.
  3. Luego ejecute su script como de costumbre:node myscript.js

Una cosa buena de NodeMonkey ( y el código de nodo sugerido a continuación ) es que puede dejar la consola del desarrollador (sin actualizaciones) cada vez que realiza un cambio y reinicia el script, NodeMonkey simplemente continúa escuchando.

Otra cosa que tiene NodeMonkey son las ubicaciones (ruta, número de línea y columna), para que sepa de dónde vino el mensaje (vea la imagen a continuación).

Prefiero NodeMonkey porque usa la increíble consola para desarrolladores de Chrome. Actualización: devtool parece ser mi nueva opción.


Nodo de hierro

Depure el código de Node.js con Chrome Developer Tools en Linux, Windows y OS X.


Inspeccionar Node.js con Chrome DevTools

Esto todavía está en desarrollo, pero puede ver el progreso en nodejs/node#2546

El objetivo es proporcionar un "soporte de depurador unificado en varios integradores v8".

Nuestro objetivo para Node es lo que tenemos para Chrome para Android. Básicamente, vas a chrome://inspect en una versión estable de Chrome y depura tu instancia de Node en ejecución.


mancy :npm install mancy -g

Una aplicación NodeJS REPL multiplataforma basada en marcos de electrones y reacciones.


código de nodo :npm install node-codein

Aunque esta herramienta usa el ejecutable de Chrome, no usa la consola del inspector de Chrome/Webkit para la salida. En su lugar, utiliza su propia consola patentada/especial que se siente un poco vulgar.

  1. Incluya código en su script:var codein = require("node-codein");
  2. Corre path/to/chrome/chrome.exe --app=http://localhost:55281para abrir la node-codeinconsola especial.
  3. Luego ejecute su script como de costumbre:node myscript.js


nodo-webkit : descarga de compilación

Este es, con mucho, el método menos eficiente para inspeccionar y ver la salida de la consola debido a la larga lista de pasos a continuación. node-webkit también tiene algunas rarezas y cambios en la API de nodo normal que pueden entrar en conflicto con sus bibliotecas o dependencias existentes.

  1. Agregar un archivo HTML
  2. Agregue el script para depurar en una <script src="script-to-debug.js"></script>etiqueta al archivo HTML.
  3. Actualice su package.json mainatributo para que apunte al archivo HTML.
  4. corre nw.exe path/to/project_folder/_
  5. Luego espere a que aparezca la ventana de nodo-webkit.
  6. Haga clic en el ícono de la hamburguesa y espere a que se inicie la ventana del inspector (al igual que Chrome/Webkit) , y vaya a la Consolepestaña.
  7. Cada vez que realice un cambio en su secuencia de comandos, siga los pasos 4 a 6.

También puede usar la bandera de depuración remota , por lo que puede abrir una pestaña de Chrome y visitar la página.

  1. nw.exe --remote-debugging-port=9222 path/to/project_folder/
  2. Visitar:http://localhost:9222/
Por favor, no cree respuestas de lista. En su lugar, separe cada programa en una respuesta separada. Tal como están las cosas, los usuarios no pueden votar a favor, en contra ni comentar sobre un software individual, y nadie puede decir qué software está aceptando realmente en la respuesta.
@winterblood NodeMonkey es, con mucho, el producto superior y digo explícitamente "Prefiero NodeMonkey". Los otros realmente no merecen su propia respuesta, incluso si cumplen con los criterios. Solo eliminé las otras soluciones porque existen y funcionan de alguna manera. Tener los tres también muestra que los he probado todos y tengo una opinión y razones por las que NodeMonkey es el mejor y me permite comparar fácilmente entre sí dentro de la respuesta.

Yo uso Node Webkit para esto. Es compatible con la mayoría/todos (?) de los protocolos de depuración de Chrome; también emula la funcionalidad de Chrome Devtools en términos de inspección de objetos plegables y admite las mismas llamadas a la API de la consola.

Incluso puede cargar e inspeccionar módulos en vivo desde la consola del desarrollador; lo cual es perfecto para familiarizarse con los módulos de node.js que usará.

Otra característica interesante que aplico al depurar donde sé que alternaré entre el símbolo del sistema es que al usar ConEmu, puede incrustar la consola Node Webkit DevTools directamente en una pestaña en ConEmu. Es transparente y no usa mucha CPU. Incluso puede tenerlo como una pestaña dividida con el símbolo del sistema para que pueda ver ambos a la vez.

¿Puedes explicar cómo configurar esto? Tengo ConEmu y NW incrustado (puedo ver el arte ascii "NODE-WEBKIT"). ¿Cómo veo la salida STDOUT de Node e ingresa algunos comandos CMD? La consola de devtools no parece tener esta funcionalidad por lo que puedo decir.
Dependiendo de lo que necesites hacer, varía. Puede conectarse al indicador cmd con websockets (también puede hacerlo en Chrome) y puede usar el protocolo de depuración remota de Chrome. Cuando abre por primera vez node-webkit; escriba processen la consola de devtools. Obtiene acceso al objeto de proceso nodejs que revela mucho. Consulte estos dos enlaces para obtener ayuda con la depuración de nw: github.com/rogerwang/node-webkit/wiki/Changes-related-to-node y github.com/rogerwang/node-webkit/wiki/Debugging-with-devtools
process.stdinda el error "Implementarme". process.stdoutes una secuencia pero no puedo leer/escribir desde ella. Entra process.stdout.on('data', function(){ console.log('data'); });y process.stdout.write('asdf');no sale data. Ejecutar node test-script.js, con console.logllamadas, en otra instancia de cmd no produce nada. Las herramientas de desarrollo de node-webkit son solo para depurar la propia aplicación de node-webkit. He realizado una depuración remota antes, pero eso es para ver la salida de la consola en otro "sistema", no para vincular STDOUT/STDIN desde una consola CMD a la consola de devtools.
Podría estar equivocado, pero estoy 99% seguro de que puedes hacer lo que quieras con esto. ¿Miraste el primero de los dos enlaces que envié? De todos modos; Si entendí mal; o dio mala ayuda; Me disculpo.
Proporcione instrucciones específicas sobre cómo lograr esto. He leído detenidamente ambos enlaces y no veo solución.