Jak mogę skonfigurować Angular i VSCode, aby moje punkty przerwania działały?
angular
debugging
webpack
visual-studio-code
Asesjix
źródło
źródło
Odpowiedzi:
Testowane z Angular 5 / CLI 1.5.5
launch.json
(wewnątrz folderu .vscode)launch.json
(patrz poniżej)tasks.json
(wewnątrz folderu .vscode)tasks.json
(patrz poniżej)launch.json for angular/cli >= 1.3
tasks.json for angular/cli >= 1.3
Testowane z Angular 2.4.8
launch.json
launch.json
(patrz poniżej)ng serve
)launch.json for angular/cli >= 1.0.0-beta.32
launch.json for angular/cli < 1.0.0-beta.32
źródło
NG Live Development Server
a następnie uruchomićChrome
jednymF5
kliknięciem?launch.json
itasks.json
zrobić tutaj. Jak zrozumiałem,launch.json
polega na uruchomieniu serwera węzła i nasłuchiwaniu portu 8080 oraztasks.json
poinstruowaniu o użyciunpm
i wykonaniu polecenia wng serve
celu uruchomienia aplikacji.Wygląda na to, że zespół VS Code przechowuje teraz przepisy na debugowanie.
https://github.com/Microsoft/vscode-recipes/tree/master/Angular-CLI
źródło
Można to zrobić na dwa różne sposoby. Możesz uruchomić nowy proces lub dołączyć do już istniejącego.
Kluczową kwestią w obu procesach jest jednoczesne działanie serwera webpack i debuggera VSCode .
Uruchom proces
W swoim
launch.json
pliku dodaj następującą konfigurację:Uruchom serwer deweloperski Webpack z Angular CLI, wykonując
npm start
Dołącz do istniejącego procesu
W tym celu musisz uruchomić Chrome w trybie debuggera z otwartym portem (w moim przypadku będzie
9222
):Prochowiec:
Okna:
launch.json
plik będzie wyglądał następująco:npm start
W takim przypadku debugger jest dołączony do istniejącego procesu Chrome zamiast uruchamiania nowego okna.
Napisałem własny artykuł, w którym opisałem to podejście ilustracjami.
Prosta instrukcja konfiguracji debuggera dla Angulara w VSCode
źródło
chrome.exe --remote-debugging-port=9222
istnieje alternatywa dla jednorazowej konfiguracjiJest to szczegółowo wyjaśnione w witrynie Visual Studio Code: https://code.visualstudio.com/docs/nodejs/angular-tutorial
źródło
Może używać tej konfiguracji:
źródło
Tutaj jest nieco lżejsze rozwiązanie, działa z Angular 2+ (używam Angular 4)
Dodano także ustawienia dla Express Server, jeśli używasz stosu MEAN.
źródło
Odpowiedź @Asesjix jest bardzo dokładna, ale jak niektórzy zauważyli, nadal wymaga wielu interakcji, aby rozpocząć,
ng serve
a następnie uruchomić aplikację Angular w Chrome. Mam to działające jednym kliknięciem przy użyciu następującej konfiguracji. Główną różnicą w stosunku do odpowiedzi @ Asesjix jest to, że typ zadania jest teraz,shell
a wywołania poleceń są dodawanestart
wcześniej,ng serve
więcng serve
mogą istnieć w swoim własnym procesie i nie blokować uruchamiania debugera:tasks.json:
launch.json:
źródło
W moim przypadku nie użyłem oryginalnego drzewa folderów projektu Angular i wiedziałem, że coś jest nie tak z
webRoot
/{workspaceFolder}
bit, ale wszystkie moje eksperymenty nie przyniosły rezultatu. Mam wskazówkę od innej SO odpowiedzi, którą połączę, jeśli znajdę ją ponownie.Pomogło mi znalezienie zawartości zmiennej
{workspaceFolder}
w czasie wykonywania, a następnie zmodyfikowanie jej do lokalizacji mojego folderu „src”, w którym znajduje się „app / *”. Aby go znaleźć, dodałem apreLaunchTask
do mojego pliku launch.json i zadanie, aby wyświetlić wartość{workspaceFolder}
.launch.json , który pojawia się po zainstalowaniu debugera Chrome
Tasks.json Nie występuje domyślnie. Naciśnij Ctrl + Shift + p i myślę, że nazywa się to „utwórz zadanie dla innego polecenia” lub czymś podobnym. Wydaje się, że nie można go zobaczyć po utworzeniu tasks.json. Możesz także po prostu utworzyć plik w tej samej lokalizacji co launch.json
Kiedy poznałem wartość $ {workspaceFolder}, naprawiłem go tak, aby wskazywał na mój folder src w moim nowym drzewie projektu i wszystko działało. Debugowanie wymaga
ng serve
uruchomienia jako zadania przed uruchomieniem, jako część kompilacji (przykłady powyżej) lub w wierszu polecenia.Oto link do wszystkich zmiennych, których możesz użyć:
źródło