Swap Metro for Webpack in a React Native project to use Webpack plugins and custom loaders not available in Metro.
Build a React Native app without needing Watchman installed by using Haul as the bundler.
Generate RAM bundles for a React Native production build to speed up app startup on some devices.
Use symlinks correctly in a React Native monorepo by replacing Metro with Haul.
| callstack/haul | kirodotdev/kiro | bqplot/bqplot | |
|---|---|---|---|
| Stars | 3,684 | 3,686 | 3,689 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | moderate | easy | easy |
| Complexity | 3/5 | 3/5 | 2/5 |
| Audience | developer | developer | data |
Figures from each repo's GitHub metadata at analysis time.
Requires Node 10 or newer, the team recommends Re.pack for new projects instead.
Haul is a command-line tool that replaces the default bundler used when building React Native mobile apps. React Native ships with its own bundler called Metro, and Haul swaps that out for Webpack, a widely used bundler from the broader JavaScript ecosystem. This gives developers access to the full Webpack plugin and loader system, which can make it easier to customize how an app's code is packaged. The main practical benefits listed in the README are that Haul does not require Watchman (a file-watching tool that Metro depends on), that symlinks work correctly, and that error messages are designed to be more helpful than the defaults. For production builds, Haul can also generate RAM bundles, a format that speeds up app startup on some devices by only loading the parts of the code the app actually needs at first. The README includes an important notice at the top: the team has released a successor project called Re.pack, which adds features Haul never had, including Hot Module Replacement and React Refresh support. The README recommends that anyone evaluating Haul start with Re.pack instead, and that existing Haul users migrate. The migration is described as straightforward because both tools use a standard webpack.config.js file. For those who still want to use Haul, setup involves adding the @haul-bundler/cli package to a React Native project, running haul init to generate a configuration file, and then starting the development server with haul start. The init command sets up version-specific presets for React Native 0.59 and 0.60. Node 10 or newer is required. Haul has known limitations: no support for Hot Module Replacement, limited support for the Delta Bundles format introduced in React Native 0.52, and no support for the Haste module system that some React Native internal code uses.
Haul is a command-line tool that replaces the Metro bundler in React Native projects with Webpack, giving developers access to the full Webpack plugin ecosystem. The team now recommends its successor Re.pack for new projects.
Mainly TypeScript. The stack also includes TypeScript, Node.js, Webpack.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.