2011-06-24 11 views
17

Używam supervisor do automatycznego przeładowania mojego pliku node.js, na przykładUruchom aplikację node.js w debugowaniu z opiekunem

supervisor -w . app.js 

Nie mogę jednak ustalić, w jaki sposób uzyskać przełożonego do uruchomienia procesu node.js w debugowaniu, np. odpowiednik

node --debug app.coffee 

Ktoś ma jakieś pomysły?

+1

Zerwany link administratora. Na stronie wyświetla się komunikat "Posterous Spaces nie jest już dostępny". –

Odpowiedz

9

Takie rozwiązanie będzie działać na * nix:

idź do /usr/local/bin lub innego katalogu w $ PATH

$ cd /usr/local/bin 

Utwórz wykonywalny skrypt (powiedzmy, węzeł-debug) o następującej treści

#!/bin/bash 
node --debug [email protected] 

Aby uczynić go wykonywalnym:

$ sudo chmod 777 /usr/local/bin/node-debug 

Teraz można uruchomić przełożonego tak:

$ supervisor -x node-debug script.js 

PS:: Aby zaokrąglić go:

su 
echo '#!/bin/bash 
node --debug [email protected]' > /usr/local/bin/node-debug 
chmod 777 /usr/local/bin/node-debug 
+0

W ten sposób uzyskuję' słuchanie debuggera na porcie 5858 Nieudane otwarcie gniazda na porcie 5858, czekanie 1000 ms przed ponownym próbowaniem' podczas ręcznego 'węzła --debug' działa dobrze. – Redsandro

0

Użyj flagę -x co zostało udokumentowane na node-supervisor github page

supervisor -w . -x 'node --debug' app.js

ale to nie będzie działać z coffeescript więc trzeba użyć

supervisor -w . -x 'coffee --debug' app.js

+3

próbował tego, ale przechodzi w nieskończoną pętlę z DEBUGEM: Rozpoczynanie procesu potomnego z "coffee - debug app.coffee" DEBUG: execvp(): Brak takiego pliku lub katalogu –

+0

@JamesHollingworth Myślę, że to było zbyt wielkie oczekiwanie, aby po prostu zadziałało 'coffee - debug': P – Raynos

3

node-dev

node-dev on Github

„Wszystkie argumenty są przekazywane do Rodziny procesu. node-dev --debug server.js będzie debugowania aplikacji, a nie sam administratora.”

stworzyć "test.js" node.js skrypt w $ HOME/nodetest

pierwszy terminal (run węzeł w trybie debugowania, debugowanie będzie nasłuchiwać na porcie 5858, węzeł-dev będzie przeładować zmienionych plików):

cd $HOME/nodetest 
    npm install node-dev 
    node_modules/.bin/node-dev --debug test.js 

drugi terminal (start internetowej inspektora przeglądarka WebKit oparte, inspektor podłącza się do portu 5858 z debugera i nasłuchuje na porcie 8080):

cd $HOME/nodetest 
    npm install node-inspector 
    node_modules/.bin/node-inspector 

Otwórz ten URL w przeglądarce opartej WebKit (Chrome, Safari, itp):

http://0.0.0.0:8080/debug?port=5858 

Kliknij na "Skrypty" i ustawić punkty przerwania w kodzie.

24

Działa to również (i nie potrzeba osobnego skryptu bash):

supervisor -- --debug app.js 
supervisor -- --debug=7070 app.js 
+1

ten powinien być zaakceptowaną odpowiedzią. Dziękuję za podzielenie się. –

+0

Tak to działa tak prosto, a także z "zaawansowanym" inspektorem, np. do uruchomienia Express: 'DEBUG = myapp: * supervisor - --inspect bin/www'. Mam błędy zdarzeń próbujące użyć parametru -x, ale ten alternatywny format parametru działa. – scipilot

3

Z CoffeeScript site:

--nodejs Plik wykonywalny węzła ma kilka użytecznych opcji, które można ustawić, takie jak --debug, --debug-brk i --max-stack-size. Użyj tej flagi, aby przesłać opcje bezpośrednio do Node.js.

Próbowałem to i to działało:

nadzorca - --nodejs --debug app.coffee

Można dodać inne argumenty tak:

przełożony -w. -n błąd - --nodejs --debug app.coffee