Warum kann ich meine ReactJS-Anwendung nicht mit PhantomJS 2.1.1 rendern?

8

Um meine reagierende App mit webdriver.io zu testen, muss ich sie mit phantomjs starten.

Zuerst dachte ich, das Problem sei webdriver.io, aber ich habe festgestellt, dass PhantomJS eine leere Seite zurückgibt, wenn ich versuche zu rendern.

Um einige Tests zu machen, habe ich diese Javascript-Datei geschrieben:

%Vor%

was ich so starte: phantomjs test.js http://localhost:8080

Aber egal, was ich mache, example.png ist immer leer.

Ich verwende derzeit React 0.14.7 und phantomjs 2.1.1. Hat jemand eine Idee, warum ich meine App nicht rendern kann?

PS: Ich habe es nicht erwähnt, aber ich habe kein Problem mit Chrome oder Firefox

    
Gwendal Leclerc 19.07.2016, 21:41
quelle

2 Antworten

7

Wahrscheinlich hat das mit der fehlenden ES6-Unterstützung in PhantomJS zu tun. Um das zu überprüfen, habe ich page.onError () Callback zu Ihrem Skript hinzugefügt (immer praktisch!) Und geöffnet einige Beispielseiten replizieren, um diesen Fehler zu erhalten:

ReferenceError: Can't find variable: Symbol

Zum Polyfill-Symbol kann injiziert werden core.js in die Seite vor dem Laden der Ziel-URL:

%Vor%

Aber das ist zum Öffnen externer Websites. Wenn die Website, die getestet wird, in Ihrer Entwicklung ist (wie die URL von localhost vermuten lässt), könnten Sie wahrscheinlich nur babel konfigurieren, wie in diese Antwort gezeigt wird .

    
Vaviloff 20.07.2016, 03:42
quelle
2

Sie können PhantomJS 2.5.0 Beta unter Ссылка herunterladen.

Es verfügt über eine aktualisierte QtWebKit-Engine, die ES6 nativ unterstützt.

    
annulen 11.02.2017 18:33
quelle

Tags und Links