Relay / GraphQL Schema-Cache wird nicht aktualisiert, wenn ich das Schema auf der Serverseite aktualisiere

8

Ich habe eine React-App, die Relay und einen Remote-GraphQL-Server verwendet. Wenn ich den Webpack-Server starte, muss ich das neueste Schema holen und in das babel-relay-plugin einspeisen.

Es funktioniert großartig .... außer wenn ich ein Schema ändere. Es scheint, dass React oder Relay oder Webpack oder etwas das Schema zwischenspeichert, weil ich beim Ausführen der App einen Schemavalidierungsfehler in der Browserkonsole erhalte. Wenn ich die Abfrage jedoch manuell mit GraphIQL für den GraphQL-Server ausführen, ist die Abfrage erfolgreich. Also müsste es eine Art Cache auf der Reagieren-, Relay-, Webpack-Seite sein, denke ich?

Dinge, die ich versucht habe:

  1. Listenelement
  2. Neustart des Webpack-Servers
  3. Entfernen von node_modules und npm install
  4. Ich habe sogar versucht, meinen Computer neu zu starten (das schien tatsächlich zu funktionieren, könnte aber Zufall sein)

Vielen Dank im Voraus für Ihre Hilfe.

    
postalservice14 01.09.2016, 12:41
quelle

2 Antworten

5
Es stellte sich heraus, dass es natürlich ein menschlicher Fehler war. Ich hatte cacheDirectory als true in meiner Babel-Loader-Abfrage. Sie können darüber auf der Babel-Loader Readme lesen (tun Sie einfach einen Fund auf der Seite für 'CacheDirectory') Ссылка

Sobald ich das in false geändert habe, was der Standard ist. Das Problem ging weg. Hoffe das hilft anderen.

    
postalservice14 08.11.2016, 12:40
quelle
3

Das ist mir passiert, als ich zu Webpack 2 gewechselt habe.

Die Lösung war in meinem Fall, das babelRelayPlugin als erstes Plugin in .babelrc auszuführen.

Ich bin mir nicht ganz sicher warum.

    
Chris Martin 04.09.2016 22:48
quelle