nytimes / kyt

Starting a new JS app? Build, test and run advanced apps with kyt 🔥
https://open.nytimes.com/introducing-kyt-our-web-app-configuration-toolkit-9ccddf6f6988
Other
1.92k stars 110 forks source link

Proper Server HMR #423

Open tizmagik opened 7 years ago

tizmagik commented 7 years ago
### 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
janhoogeveen commented 7 years ago

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

staylor commented 3 years ago

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