Czy ktoś używał inspektora węzła z Gruntem do debugowania aplikacji? Jeśli nie, czy możesz polecić narzędzie do debugowania aplikacji opartych na Grunt?
Pracuję z nodejs dla aplikacji po stronie serwera i mam Grunt do używania oddzielnych zadań ( dzieje się tak, ponieważ użytkownicy mogą wykonywać zadania oddzielnie).
node-inspector
którym rozmawianode --debug
, dostarczając informacje debugowania do przeglądarki, która się łączy. To niesamowite, ponieważ możesz następnie podłączyć Chrome do procesu inspektora węzłów i użyć wszystkich narzędzi inspektora sieci do debugowania aplikacji. github.com/dannycoates/node-inspectorOdpowiedzi:
Aby uruchomić grunt podczas debugowania, musisz jawnie przekazać skrypt do węzła:
i umieść
debugger;
linię w swoim zadaniu.node-inspector
otworzy przeglądarkę z narzędziami do debugowania.Edycja 28 lutego 2014
node-inspector
dodał polecenienode-debug
, które uruchamia węzeł w--debug
stanie i otwiera przeglądarkę nanode-inspector
stronie, zatrzymując się, gdy trafi w pierwsządebugger
linię lub ustawia punkt przerwania.Edycja 30 stycznia 2015
W systemie Windows sytuacja jest nieco bardziej skomplikowana. Instrukcje znajdują się w odpowiedzi od @ e.gluhotorenko.
źródło
$(which grunt)
to jest? Czy to tylko plik Gruntfile.js, który chcę debugować? I zatask
co wstawię (używającserve
jako przykładu),grunt serve
czy po prostuserve
? Próbowałemnode-debug Gruntfile.js serve
i wielu innych rzeczy, ale po prostu nie mogę tego zrobić. Node-inspector otwiera się i przerywa w pierwszej linii, ale nie mogę włamać się doserve
zadania, nawet jeśli wstawiędebugger;
linię jako pierwszą linię funkcji.grunt.js
skryptu grunt-cli . To jest skrypt, który faktycznie uruchamia Grunt. Jeśli korzystasz z systemu Windows, spójrz na stackoverflow.com/a/13443026/240358 (odpowiedź poniżej), aby znaleźć możliwą lokalizację skryptu grunt-cli. Który zajmuje miejscegrunt
w swojej komendzie - w przykładzie, wymienićtask
zserve
Rozwiązanie Windows
Biegać
z cmd w katalogu z plikiem
Gruntfile.js
. Nie zapomnij umieścićdebugger;
linki w niezbędnych miejscach.źródło
grunt-cli
node --debug-brk [..]\node_modules\grunt-cli\bin\grunt
node --debug-brk (Resolve-Path ~\AppData\Roaming\npm\node_modules\grunt-cli\bin\grunt) taskname
node-inspector
Aby debugować, musimy zmodyfikować plik gruntowy w bin. Na moim komputerze grunt jest zainstalowany globalnie, więc przeszedłem do / usr / local / lib / node_modules / grunt / bin, otworzyłem plik i zmodyfikowałem:
#!/usr/bin/env node
Do
#!/usr/bin/env node --debug-brk
--debug-brk zepsuje pierwszą linię uruchomionego javascript.
Samo zrobienie tego nie wystarczy, ponieważ nie będziesz w stanie znaleźć pliku js z zadaniem gruntownym w menu rozwijanym w inspektorze węzłów, więc musisz zmodyfikować plik, który chcesz debugować, dodając
debugger;
gdzie chcesz, aby nastąpił punkt przerwania. Teraz możesz kliknąć Kontynuuj po pierwszej przerwie, a przerwiesz nadebugger;
liniiDość niezdarnie, ale to jedyny sposób, jaki do tej pory znalazłem.
źródło
Niedawno utworzyłem inspektora grunt-node, aby łatwo skonfigurować inspektora węzła z resztą przepływu pracy, sprawdź to: https://github.com/ChrisWren/grunt-node-inspector
Oto sekcja pliku Gruntfile, która ilustruje, jak można debugować zadanie gruntowe za pomocą grunt-node-inspector, grunt-concurrent i grunt-shell: https://github.com/CabinJS/Cabin/blob/master/Gruntfile. js # L44-L77
źródło
node --debug-brk $(which grunt) node-inspector build test
coś w stylu biegania ? Lubię to.node-inspector
nie wyjdzie i nie pozwolibuild
i nietest
będzie działać, ponieważ działa wiecznie. Dodałem link do fragmentu, w którym mam go skonfigurować.node-inspector &
, zostawiam go w tle i nazywam go zakończonym. Jakieś przemyślenia na ten temat?grunt node-inspector
a następnie przechodzę do adresu URL localhost i nie widzę plików źródłowych. Po prostu puste narzędzia debuggera.grunt node-inspector
iznode --debug-brk Gruntfile.js
mojego katalogu gruntowego. Jednak kiedy ustawię punkt przerwania w pliku gruntowym, po prostu zawiesza się z błędem połączenia.Wykonałem zadanie, aby uruchomić moją aplikację i uruchomić node-inspector. Jest o wiele lepsze niż obecna propozycja, wystarczy dodać to zadanie w gruntfile:
źródło
Świetne odpowiedzi tutaj. W 2017 roku możesz to zrobić
node --inspect --debug-brk $(which grunt) taskName
Który drukuje coś w stylu.
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
Otwórz ten adres URL w chrome i gotowe!
Używam Node 7.3.0 i używam Maca. Być może będziesz musiał postępować zgodnie z poradami w innych postach, aby uruchomić go w systemie Windows.
źródło
Aktualizacja 2019
Jeśli chcesz uruchomić zadanie gruntowne w trybie debugowania i przerwać w pierwszym wierszu:
node --inspect-brk $(which grunt) taskName
Jeśli chcesz uruchomić zadanie gruntowne w trybie debugowania na określonym porcie:
node --inspect-brk=8080 $(which grunt) taskName
jeśli chcesz dołączyć kod VSCODE do procesu węzła, który uruchamia sesję debugowania grunt, użyj następującej konfiguracji w vscode:
źródło