Debuggen von Javascript / ReactJS Fehlern

8

Ich baue eine kleine Anwendung mit ReactJS und finde es manchmal schwierig, sie zu debuggen.

Jedes Mal, wenn ich eine Javascript error mache, wie fehlende let/var vor einer neuen Variable, fehlende require für eine Komponente, die ich später verwende, hört meine Anwendung auf zu arbeiten (der Code wird nicht über die Zeile hinaus ausgeführt, wo der Fehler ist), aber ich bekomme keine Fehler in der Browser-Konsole. Es scheint so, als ob irgendein ReactJS-Code Fehler abfängt und sie möglicherweise auf eine bestimmte Weise behandelt. Gibt es so etwas in ReactJS? Wie kann ich Fehler in der Konsole sehen?

Ich verwende gulp/gulp-connect/browserify set, um die Anwendung auszuführen.

Lassen Sie mich wissen, wenn Sie zusätzliche Daten oder Codebeispiele benötigen, aktualisiere ich die Frage.

    
jedrzej.kurylo 17.09.2015, 13:29
quelle

5 Antworten

6

Wenn Sie wissen, dass ein Fehler ausgelöst, aber von anderem Code verschluckt wird, können Sie im Debugger Ihres Browsers die Ausführung anhalten, wenn eine Ausnahme ausgelöst wird, auch wenn sie irgendwo gefangen wird:

Beachten Sie jedoch, dass Bibliotheken während des Tests, ob der Browser bestimmte Funktionen unterstützt, absichtlich Ausnahmen auslösen. Du müsstest über diese hinweggehen.

    
Felix Kling 17.09.2015 13:48
quelle
1

Die Verwendung von React Hot Loader , das ein Webpack-Plugin ist, sollte die meisten Probleme lösen, die Sie in einer Entwicklung haben verarbeiten. Es ist einfach in ein bestehendes Projekt zu integrieren und hat einige beispiele wie man alle dinge zusammenfügt.

Als Ergebnis:

  • Ihre Codeänderungen würden an den Browser gesendet werden
  • Im Falle des Fehlers haben Sie eine sinnvolle Stapelverfolgung in der Browserkonsole.
Yevgen Safronov 21.09.2015 18:38
quelle
1

Ich vermute, dass die inkorrekte JS-Syntax dazu führt, dass Ihr Schluckprozess fehlschlägt, was dazu führen würde, dass Ihre Anwendung überhaupt nicht im Browser gebündelt / bereitgestellt wird.

Es scheint so, als ob in Ihrer Systemkonsole (wo gulp läuft) Fehler auftreten sollten - im Gegensatz zu Ihrer Browser-Konsole. Möglicherweise stürzt Ihr Schluckprozess ab, wenn dies auch passiert. Wenn Ihre Konsole keine Fehler enthält, müssen Sie möglicherweise auf sie achten. Dieser Beitrag enthält ein Beispiel, wie Fehler von browserify protokolliert werden können:

%Vor%

Wahrscheinlich ist die beste Lösung, Ihren Code vor der Verwendung von browserify über jshint auszuführen, damit Sie nicht versuchen, syntaktisch ungültigen Code zu browserisieren.

Vorbehalt: kein aktueller Schluckbenutzer

    
pherris 21.09.2015 19:08
quelle
1

Ich litt an dem ähnlichen Problem wie fehlende / var, erfordern, und andere triviale Fehler innerhalb des Reaktionskontextes. In meinem Fall ist der Grund der Fehler der Promise-Aussage. Promise scheint alle Ausnahmen zu unterdrücken, die nach dem Aufruf auftreten. Ich könnte das Problem lösen, indem ich eine Ausnahme wie unten behandle.

%Vor%     
Mitsutoshi Watanabe 22.11.2016 11:51
quelle
0

react-slingshot ist ein Starter-Kit, das bei der Kompilierung einen Fehler anzeigt und Stack-Trace im Browser anzeigt. Es hat auch Tests eingerichtet.

    
tsuz 08.11.2016 16:33
quelle

Tags und Links