intellij idea - license - Configuración de la depuración de JS con IntelliJ/WebStorm y PhantomJS/Casper
webstorm license (2)
¿Puedo obtener un depurador JS interactivo que funcione en PhantomJS y / o CasperJS?
No resolví esto por completo, pero definitivamente reduje el dolor.
PhantomJS proporciona un argumento de línea de comando para habilitar el depurador remoto de webkit . AFAIK, PhantomJS lanza un servidor y vuelca el script en el <head>
de una página web con el conocido depurador dentro del navegador. En realidad es bastante agradable, con puntos de interrupción, etc. Sin embargo, cambiar a buscar manualmente en el terminal un parámetro de línea de comando aleatorio y la ruta de acceso al script es muy irritante.
Entonces, utilicé la función de "herramientas externas" de IntelliJ para lanzar un script Bash que elimina cualquier sesión de depuración anterior, inicia PhantomJS y luego abre la página en Chrome.
#!/bin/bash
lsof -i [email protected]:9000 #list anything bound to port 9000
if [ $? -eq 0 ] #if something was listed
then
killall ''phantomjs''
fi
/usr/local/Cellar/phantomjs/2.0.0/bin/phantomjs --remote-debugger-port=9000 $1 &
# --remote-debugger-autorun=yes <- use if you have added ''debugger;'' break points
# replace $1 with full path if you don''t pass it as a variable.
sleep 2; #give phantomJS time to get started
open -a /Applications/Google/ Chrome.app http://localhost:9000 & #linux has a different ''open'' command
# alt URL if you want to skip the page listing
# http://localhost:9000/webkit/inspector/inspector.html?page=1
#see also
#github.com/ariya/phantomjs/wiki/Troubleshooting
Las siguientes líneas son configuraciones para IntelliJ, aunque el código anterior funciona igual de bien en cualquier plataforma / IDE.
programa: $ProjectFileDir$/path/to/bash/script.sh
parámetros: $FilePath$
dir de trabajo: $ProjectFileDir$
PhantomJS tiene una opción de remote-debugger-port
que puede usar para depurar su script de casper en las herramientas de desarrollo de Chrome. Para usarlo, simplemente ejecuta tu script de casper con este argumento:
casperjs test script.js --remote-debugger-port=9000
A continuación, abra http: // localhost: 9000 en Chrome y haga clic en el enlace about:blank
que se muestra a sí mismo. Debería encontrarse en el territorio familiar de las herramientas de desarrollo de Chrome.
Como se trata de un script y no de una página web, para iniciar la depuración, debe hacer una de estas dos cosas antes de que se ejecute el script:
- En la página de herramientas de desarrollo de Chrome, abra la consola y ejecute
__run()
para iniciar su script. - Inserta un
debugger;
línea en su código, y ejecute su secuencia de comandos casper con un--remote-debugger-autorun=yes
adicional--remote-debugger-autorun=yes
. Si lo hace con la página de depuración remota abierta, se ejecutará la secuencia de comandos hasta que llegue aldebugger;
línea.
Hay un gran tutorial que explica todo esto muy bien.