kyt icon indicating copy to clipboard operation
kyt copied to clipboard

Proper Server HMR

Open tizmagik opened this issue 7 years ago • 2 comments

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

tizmagik avatar Feb 28 '17 04:02 tizmagik

Agree on this, the server probably doesn't need to reload unless a file in the src/routes or src/server folders changes.

janhoogeveen avatar Mar 28 '17 08:03 janhoogeveen

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

staylor avatar Mar 16 '21 18:03 staylor