kyt
kyt copied to clipboard
Proper Server HMR
Bug or Feature?
Feature
Current Behavior
Currently, changes to code restarts the entire server (it is not hot-reloaded). In many cases, this results in a race condition where the client-side HMR benefit is lost because the server was restarting while the client-side code is being hot-reloaded, requiring the developer to do a manual reload. It also means the edit code => save => see changes feedback loop is significantly slower because of the server restarting. A workaround for this is if server reloading could be disabled ( #99 ).
Desired Behavior
It would be nice if the server actually could hot-reload as well. There is a great post on Hackernoon detailing how this can be done: https://hackernoon.com/hot-reload-all-the-things-ec0fed8ab0#.scaryhftd
Agree on this, the server probably doesn't need to reload unless a file in the src/routes
or src/server
folders changes.
we have since moved from react-hot-loader
to webpack/hot/poll
and the WebpackHotDevClient a la Razzle and create-react-app
which uses SockJS to "fix" the race condition by triggering the client reload.
Next step might be using the experimental @pmmmwh/react-refresh-webpack-plugin
:
https://github.com/jaredpalmer/razzle/blob/4a104e8ecb8de4d2cf4b677b1e3a5a7d09de39c2/packages/razzle/config/createConfigAsync.js#L14