<p>тройка, кажется, ломает SSR</p>

Созданный на 23 мая 2020  ·  11Комментарии  ·  Источник: protectwise/troika

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

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

кажется, что он полагается на document , которого нет в node.

я считаю, что для того, чтобы сделать тройку псевдоизоморфной, все, что нужно сделать, это:

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

это позволило бы ssr нормально функционировать.

Все 11 Комментарий

Спасибо за отчет. Правильно ли я предполагаю, что среда SSR на самом деле не будет пытаться отобразить текст? Предложенное выше исправление предотвратило бы ошибку при начальной загрузке модуля сценария, но позже произойдет сбой, когда он действительно попытается использовать этот linkEl , поэтому я хочу убедиться, что это не проблема.

1b005ec должен помочь, но я бы чувствовал себя лучше после некоторой проверки, прежде чем публиковать выпуск 0.26.0.

Да все верно, просто не вылетает. С другой стороны, у клиента есть возможность немедленно представить представление, а позже оно регидратируется.

Я попрошу их попробовать, спасибо за исправление ...

Я пошел дальше и опубликовал 0.26.0 с этим исправлением, я вполне уверен, что это должно решить проблему после тестирования с помощью require() -ing в node repl. Повторно откройте это, если это не решит проблему для ваших пользователей. Спасибо!

это потрясающе! большое спасибо, я тоже буду переиздавать свои материалы.

Вероятно, связано с тем, что я использую nextjs, и при запуске возникает следующая ошибка. на 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 Это должно быть просто console.warn , а не серьезная ошибка, вызывает ли это проблемы?

@gtolarc Я вижу, как это предупреждающее сообщение будет очень раздражать в журналах сервера, поэтому я пошел дальше и подавил его в средах без браузера: 3dedb8f2b338e9345c107831863152b115ca50d2

Я опубликовал 0.26.1 с этим изменением.

да, других проблем не ощутил. а в 0.26.1 предупреждающее сообщение исчезло. Спасибо! @lojjic

Извините, что снова открываю это. Я все еще вижу console.warning в своих шутливых тестах. Во всяком случае, чтобы подавить это?

Я открыл крошечный MR, который проверяет, является ли окружение процесса «тестовым», прежде чем консоль регистрирует сбой при создании веб-воркера в troika-worker-utils: https://github.com/protectwise/troika/pull/85 .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги