0.3.0 • Published 5 years ago

sift-react-hot-loader v0.3.0

Weekly downloads
11
License
MIT
Repository
github
Last release
5 years ago

This fork of React Hot Loader is specifically hacked together for Sift Science

Sift Science had some irreconcilable issues adopting React Hot Loader v3, including:

  • v3 does not properly bind ES6 class methods or arrow functions (via react-proxy)
  • we do not use React Router, but use require.ensure extensively, which we found to be quite buggy with v3
  • v3 relies on the AppContainer component wrapping our root instance as children, which has certain negative effects within our UI (unmounting/remounting the children). AppContainer, with v3, is also supposed to remain in production.

However, while upgrading to React >= 16, we found that we could no longer use RHLv1 out of the box. This fork adds react-deep-force-update to v1, providing it with our global-in-development root component, bringing back the fabulous v1 functionality to the latest React.

A hack indeed, but it works!

React Hot Loader npm package

This is a stable for daily use in development implementation of React live code editing.

The Talk

React Hot Loader was demoed together with Redux at React Europe.
Watch Dan Abramov's talk on Hot Reloading with Time Travel.

Installation

npm install --save-dev react-hot-loader

Usage

If you want to try hot reloading in a new project, try one of the starter kits, React Hot Boilerplate being the most minimal one.

To use React Hot Loader in an existing project, you need to

  • switch to Webpack for builds (instead of RequireJS or Browserify);
  • enable Hot Module Replacement, which is a Webpack feature;
  • configure Webpack to use React Hot Loader for JS or JSX files.

These steps are covered by the walkthrough.

If you'd rather stay with Browserify, check out LiveReactload by Matti Lankinen.

Flux

Redux is a Flux implementation that supports hot reloading of everything out of the box. Read The Evolution of Flux Frameworks for some context around its creation.

React Native

React Native supports hot reloading natively as of version 0.22.

Troubleshooting

If something doesn't work, in 99% cases it's a configuration issue. A missing option, a wrong path or port. Webpack is very strict about configuration, and the best way to find out what's wrong is to compare your project to an already working setup, such as React Hot Boilerplate, bit by bit. We're also gathering Troubleshooting Recipes so send a PR if you have a lesson to share!

Documentation

Docs are in a bit of a flux right now because I'm in the process of updating everything to document the major 1.0 release.

If you just learned about React Hot Loader and want to find out more, check out the walkthrough and then try one of the starter kits.

If you've been with us for a while, read 1.0 release notes and migration guide.

Got Questions?

Gitter

Watch the repo to stay tuned!

Patrons

The work on React Hot Loader, React Transform, Redux, and related projects was funded by the community.
Meet some of the outstanding companies that made it possible:

See the full list of React Hot Loader patrons.

License

MIT (https://opensource.org/licenses/mit-license.php)