HMR runtime for Brunch
Allows to use Hot Module Replacement in your Brunch projects.
Constraints:
- Only works for JS files
- Requires brunch v
<unreleased>
and later - Requires
auto-reload-brunch
v<unreleased>
and later - Provides the main HMR API (but not Management API)
- Works only if your JS compiles to a single file
Change your config:
module.exports = {
hot: true,
// ...
};
Then, just use the main HMR API:
import React from 'react';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import counterApp from './reducers';
import App from 'components/App';
const store = createStore(counterApp, 0);
// detect if we're loading for the first time or reloading
if (module.hot) {
module.hot.accept('./reducers', (d) => {
store.replaceReducer(require('./reducers').default);
});
}
Note: in production environment, hmr-brunch
will strip all if (module.hot) { ... }
conditionals.