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.
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.
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:
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
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%react-slingshot ist ein Starter-Kit, das bei der Kompilierung einen Fehler anzeigt und Stack-Trace im Browser anzeigt. Es hat auch Tests eingerichtet.
Tags und Links javascript reactjs