react- горячий загрузчик: патч react- ? -dom не обнаружен - программирование

react- горячий загрузчик: патч react- ? -dom не обнаружен

Я обновил несколько пакетов npm в своем проекте Gatsby, и теперь я вижу это предупреждение в консоли:

react-hot-loader: react-🔥-dom patch is not detected. React 16.6+ features may not work.

Тем не менее, когда я смотрю в исходный код, есть комментарий:

//Actually everything works...

Что на самом деле означает это предупреждение? Это то, что я должен исправить или просто оставить?

4b9b3361

Ответ 1

Согласно моему комментарию выше, похоже, что react-hot-loader хочет пакет @hot-loader/react-dom вместо стандартного react-dom:

Лично я немного обеспокоен тем, чтобы заменить это, поскольку react-dom является основной частью любого приложения react -based. Кроме того, кажется, основываясь на некоторых связанных проблемах и комментариях к коду, возможно, это всего лишь краткосрочный обходной путь для поддержки новых функций реагирования, таких как ловушки.

Поэтому я думаю, что есть два варианта:

  • Подождите немного, чтобы увидеть, если они откажутся от этого требования (и, возможно, столкнутся с несколькими крайними случаями для горячей загрузки).
  • Следуйте инструкциям, чтобы избавиться от предупреждения.

Обновление

Вы можете отключить предупреждение следующим образом:

import { hot, setConfig } from 'react-hot-loader'

setConfig({
    showReactDomPatchNotification: false
})

Ответ 2

Так что, похоже, это артефакт процесса разработки. Похоже, что было что-то делать в этом случае. Сообщение об ошибке было закомментировано, а затем добавлено обратно в качестве решения проблемы: https://github.com/gaearon/react-hot-loader/commit/efc3d6b5a58df77f6e0d5ca21bef54e8f8732070.

Таким образом, это выглядит как небольшое предупреждение, и вы можете быть в порядке, если вам не нужны особые функции.

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

Ответ 3

Короче говоря, React-Hot-Loader - это то, что "может не работать". У него много проблем и ограничений.

"Hot-patch" был создан, чтобы (во-первых) поддерживать новые функции React, и (во-вторых) сделать его более стабильным.

  • Без этого патча что-то действительно может не сработать.
  • С патчем - что-то может работать лучше, особенно в будущем.

Это единственная наша (хорошо, моя) надежда, чтобы смягчить основные проблемы, которые есть у БРЗ, и отслеживается как "версия 5" - https://github.com/gaearon/react-hot-loader/milestone/3

hot-loader/react-dom не является "сторонней" библиотекой - это тот же react-dom с некоторыми исправлениями, применяемыми только в dev mode (вы можете проверить сценарии сборки).

Он просто перемещает некоторую темную магию, которую БРЗ использует для работы, внутри реагирует и фактически удаляет ее. БРЗ == черная магия. БРЗ + патч == вдвое меньше магии.