Hot Module Replacement runtime for Brunch
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
README.md
index.js
package.json
runtime.js

README.md

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.