/hmr-brunch

Hot Module Replacement runtime for Brunch

Primary LanguageJavaScript

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

Usage

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.