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