Wie kann ich Angular und VSCode so konfigurieren, dass meine Haltepunkte funktionieren?
angular
debugging
webpack
visual-studio-code
Asesjix
quelle
quelle
Antworten:
Getestet mit Angular 5 / CLI 1.5.5
launch.json
(innerhalb des .vscode-Ordners)launch.json
(siehe unten)tasks.json
(innerhalb des .vscode-Ordners)tasks.json
(siehe unten)launch.json for angular/cli >= 1.3
tasks.json for angular/cli >= 1.3
Getestet mit Angular 2.4.8
launch.json
launch.json
(siehe unten)ng serve
)launch.json for angular/cli >= 1.0.0-beta.32
launch.json for angular/cli < 1.0.0-beta.32
quelle
NG Live Development Server
und dann starten können ?Chrome
F5
launch.json
undtasks.json
tut hier. Wie ich verstanden habe,launch.json
soll der Knotenserver gestartet und Port 8080 abgehört werden, und es wirdtasks.json
angewiesennpm
, den Befehlng serve
zum Ausführen der Anwendung zu verwenden und auszuführen .Das VS Code-Team speichert jetzt Debugging-Rezepte.
https://github.com/Microsoft/vscode-recipes/tree/master/Angular-CLI
quelle
Dafür gibt es zwei verschiedene Möglichkeiten. Sie können einen neuen Prozess starten oder anhängen einen vorhandenen .
Der entscheidende Punkt in beiden Prozessen ist, dass der Webpack-Entwicklungsserver und der VSCode-Debugger gleichzeitig ausgeführt werden .
Starten Sie einen Prozess
Fügen Sie Ihrer
launch.json
Datei die folgende Konfiguration hinzu:Führen Sie den Webpack-Entwicklungsserver über Angular CLI aus, indem Sie ihn ausführen
npm start
An einen vorhandenen Prozess anhängen
Dazu müssen Sie Chrome im Debugger-Modus mit geöffnetem Port ausführen (in meinem Fall wird dies der Fall sein)
9222
):Mac:
Windows:
launch.json
Die Datei sieht folgendermaßen aus:npm start
In diesem Fall wird der Debugger an den vorhandenen Chrome-Prozess angehängt, anstatt ein neues Fenster zu öffnen.
Ich habe meinen eigenen Artikel geschrieben, in dem ich diesen Ansatz mit Illustrationen beschrieben habe.
Einfache Anleitung zum Konfigurieren des Debuggers für Angular in VSCode
quelle
chrome.exe --remote-debugging-port=9222
starte, muss ich diesen Befehl ausführen. Gibt es eine Alternative für eine einmalige KonfigurationDies wird auf der Visual Studio Code-Website ausführlich erläutert: https://code.visualstudio.com/docs/nodejs/angular-tutorial
quelle
Kann diese Konfiguration verwenden:
quelle
Hier ist eine etwas leichtere Lösung, funktioniert mit Angular 2+ (ich verwende Angular 4)
Außerdem wurden die Einstellungen für den Express-Server hinzugefügt, wenn Sie den MEAN-Stack ausführen.
quelle
Die Antwort von @Asesjix ist sehr gründlich, aber wie einige bereits betont haben, sind immer noch mehrere Interaktionen erforderlich,
ng serve
um die Angular-App in Chrome zu starten und anschließend zu starten. Ich habe dies mit einem einzigen Klick mit der folgenden Konfiguration zum Laufen gebracht. Der Hauptunterschied zur Antwort von @ Asesjix besteht darin, dass der Aufgabentyp jetzt lautetshell
und die Befehlsaufrufestart
zuvor hinzugefügt wurden,ng serve
sodass erng serve
in einem eigenen Prozess vorhanden sein kann und den Debugger nicht am Starten hindert:task.json:
launch.json:
quelle
In meinem Fall hatte ich den ursprünglichen Angular-Projektordnerbaum nicht verwendet und wusste, dass mit
webRoot
/ ein Fehler aufgetreten ist{workspaceFolder}
bit aber alle meine Experimente ergaben kein Ergebnis. Ich habe einen Tipp von einer anderen SO-Antwort erhalten, den ich verlinken werde, wenn ich ihn wieder finde.Was mir geholfen hat, war, den Inhalt der Variablen
{workspaceFolder}
zur Laufzeit zu finden und ihn dann an den Speicherort meines Ordners "src" zu ändern, unter dem Sie "app / *" haben. Um es zu finden, habe ichpreLaunchTask
meiner Datei launch.json eine und eine Aufgabe hinzugefügt , um den Wert von auszugeben{workspaceFolder}
.launch.json , das nach der Installation des Chrome-Debuggers angezeigt wird
Tasks.json Standardmäßig nicht vorhanden. Drücken Sie Strg + Umschalt + p und ich denke, es heißt "Aufgabe für anderen Befehl erstellen" oder ähnliches. Kann es nicht sehen, nachdem task.json erstellt wurde. Sie können die Datei auch einfach am selben Speicherort wie launch.json erstellen
Sobald ich den Wert von $ {workspaceFolder} kannte, habe ich ihn so korrigiert, dass er auf meinen src-Ordner in meinem neuen Projektbaum verweist, und alles hat funktioniert. Das Debuggen muss
ng serve
entweder als Prelaunch-Task oder als Teil des Builds (Beispiele oben) oder an einer Eingabeaufforderung ausgeführt worden sein.Hier ist ein Link zu allen Variablen, die Sie verwenden können:
quelle