<p>Troika scheint SSR zu brechen</p>

Erstellt am 23. Mai 2020  ·  11Kommentare  ·  Quelle: protectwise/troika

https://github.com/react-spring/drei/issues/25

https://github.com/react-spring/drei/issues/23

es scheint sich auf document zu verlassen, das im Knoten nicht existiert.

Ich glaube, um Troika pseudo-isomorph zu machen, müsste es nur Folgendes tun:

const linkEl = typeof document !== 'undefined' && document.createElement('a')

dadurch würde ssr normal funktionieren.

Alle 11 Kommentare

Danke für den Bericht. Gehe ich richtig in der Annahme, dass eine SSR-Umgebung nicht wirklich versuchen würde, den Text zu rendern? Die oben vorgeschlagene Lösung würde einen Fehler beim anfänglichen Laden des Skriptmoduls verhindern, aber später fehlschlagen, wenn tatsächlich versucht wird, dieses linkEl zu verwenden, also möchte ich sicherstellen, dass dies kein Problem ist.

1b005ec sollte den Trick machen, aber ich würde mich mit etwas Überprüfung besser fühlen, bevor ich eine 0.26.0-Version veröffentliche.

Ja, das ist richtig, es würde einfach nicht abstürzen. Der Kunde hingegen hat die Möglichkeit, sofort eine Ansicht zu präsentieren, die später rehydriert wird.

Ich werde sie bitten, es auszuprobieren, danke für die Lösung ...

Ich bin weitergegangen und habe 0.26.0 mit diesem Fix veröffentlicht. Ich bin ziemlich zuversichtlich, dass das Problem behoben sein sollte, nachdem ich es getestet habe, indem ich es in der Node- require() . Öffnen Sie dies bitte erneut, wenn es das Problem für Ihre Benutzer nicht löst. Danke!

das ist toll! vielen Dank, ich werde meine Sachen auch wieder veröffentlichen.

Wahrscheinlich verwandt, ich verwende nextjs und der folgende Fehler tritt beim Start auf. auf v0.26

Troika createWorkerModule: web workers not allowed in current environment; falling back to main thread execution. ReferenceError: Worker is not defined
    at supportsWorkers (/Users/mk/dev/workspace/dapps/gione/node_modules/troika-worker-utils/dist/troika-worker-utils.umd.js:417:20)
    at defineWorkerModule (/Users/mk/dev/workspace/dapps/gione/node_modules/troika-worker-utils/dist/troika-worker-utils.umd.js:472:10)
    at /Users/mk/dev/workspace/dapps/gione/node_modules/troika-worker-utils/dist/troika-worker-utils.umd.js:606:30
    at /Users/mk/dev/workspace/dapps/gione/node_modules/troika-worker-utils/dist/troika-worker-utils.umd.js:2:66
    at Object.<anonymous> (/Users/mk/dev/workspace/dapps/gione/node_modules/troika-worker-utils/dist/troika-worker-utils.umd.js:5:2)

@gtolarc Das sollte nur ein console.warn sein, kein harter Fehler, verursacht er Probleme?

@gtolarc Ich kann sehen, dass diese Warnmeldung in Serverprotokollen sehr ärgerlich wäre, also habe ich sie in Nicht-Browser-Umgebungen unterdrückt: 3dedb8f2b338e9345c107831863152b115ca50d2

Ich habe 0.26.1 mit dieser Änderung veröffentlicht.

Ja, ich habe keine anderen Probleme gespürt. und in 0.26.1 verschwand die Warnmeldung. Danke! @lojjic

Entschuldigung, dass ich das nochmal aufmache. Ich sehe immer noch die console.warning in meinen Scherztests. Wie auch immer, um dies zu unterdrücken?

Ich habe ein winziges MR geöffnet, das prüft, ob die Prozessumgebung „test“ ist, bevor die Konsole einen Fehler beim Erstellen des Webworkers in troika-worker-utils protokolliert: https://github.com/protectwise/troika/pull/85

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

stephencorwin picture stephencorwin  ·  39Kommentare

Ocelyn picture Ocelyn  ·  13Kommentare

asbjornlystrup picture asbjornlystrup  ·  7Kommentare

arpu picture arpu  ·  43Kommentare

atlmtw picture atlmtw  ·  47Kommentare