I updated some npm packages in my Gatsby project and now I'm seeing this warning in console:
React-hot-loader: react-
I updated some npm packages in my Gatsby project and now I'm seeing this warning in console:
React-hot-loader: react-
You need to add
@hot-loader/react-dom
to your project based on your ReactJS version, pay attention below command:Then it is needed to add resolve alias for it on your Webpack configuration file:
For more information read its docs.
In short - React-Hot-Loader is something that "might not work". It has a lot of problems and limitations.
"hot-patch" was created to (first) support new React features, and (second) make it more stable.
It's the only our(ok, mine) hope to mitigate the major problems RHL has, and tracked as "version 5" - https://github.com/gaearon/react-hot-loader/milestone/3
hot-loader/react-dom
is not a "third party" lib - it's the samereact-dom
with some patches applied todev mode
only (you might check build scripts).It just moves some dark magic, RHL uses to work, inside react, and actually removes it. RHL == black magic. RHL + patch == twice less magic.
Per my comment above, it's looking like
react-hot-loader
wants the@hot-loader/react-dom
package instead of standardreact-dom
:Personally I'm a little concerned with swapping that out though since
react-dom
is a core part of anyreact
-based application. Also it seems based on some of the linked issues and code comments that maybe this is just a short-term workaround to support new react features like hooks.So I guess there's two options:
Update
You can disable the warning like so:
So this appears to be an artifact of the development process. Looks like there was some back-and-forth on what to do in this case. The error message was commented out, and then later added back as a fix for an issue: https://github.com/gaearon/react-hot-loader/commit/efc3d6b5a58df77f6e0d5ca21bef54e8f8732070.
So, it looks like it's a minor warning, and you may be just fine unless you need specific features.
It might be a good idea to ask for clarity on this from the maintainers, since they seem slightly confused themselves :)