# haul **Repository Path**: trusted-list/haul ## Basic Information - **Project Name**: haul - **Description**: Haul is a command line tool for developing React Native apps, powered by Webpack - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-18 - **Last Updated**: 2026-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
A command line tool for developing React Native apps
--- [![Build Status][build-badge]][build] [![MIT License][license-badge]][license] [![PRs Welcome][prs-welcome-badge]][prs-welcome] [![Code of Conduct][coc-badge]][coc] [![Chat][chat-badge]][chat] [![tweet][tweet-badge]][tweet] --- ## Notice We're actively working on a Haul successor, which would provide long awaited features like Hot Module Replacement + React Refresh and better feature-parity with Metro. The version `1.0.0` is already released! If you're investigating using Haul, we highly recommend giving a [Re.pack](https://github.com/callstack/repack) a go. If you're already using Haul, we recommend migrating to [Re.pack](https://github.com/callstack/repack) for better developer experience and feature set. The migration process is fairly straighforward, since you now have full access to `webpack.config.js`. --- Haul is a drop-in replacement for `react-native` CLI built on open tools like Webpack. It can act as a development server or bundle your React Native app for production. `@haul-bundler/cli` and other packages under `@haul-bundler` scope are a overhaul of `haul` package __and support only React Native 0.59.0 and above__. If you need to support older versions, please check [`legacy` branch](https://github.com/callstack/haul/tree/legacy). `@haul-bundler/cli` and other packages __requires Node 10 to be installed__. If you're running older version, please upgrade to Node 10 LTS or newer. ## Features - Replaces React Native packager to bundle your app - Access to full webpack ecosystem, using additional loaders and plugins is simple - Doesn't need watchman, symlinks work nicely - Helpful and easy to understand error messages ## Packages | Name | Version | Description | Required | | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | | `@haul-bundler/cli` | [![cli version][version-cli]][package-cli] | CLI and commands implementation. | Yes | | `@haul-bundler/core` | [![core version][version-core]][package-core] | Core logic and functionality. | Yes (installed with `cli`) | | `@haul-bundler/core-legacy` | [![core-legacy version][version-core-legacy]][package-core-legacy] | Legacy logic from `haul` package | Yes (installed with `cli`) | | `@haul-bundler/babel-preset-react-native` | [![babel-preset-react-native version][version-babel-preset-react-native]][package-babel-preset-react-native] | Babel preset tweaked for RN 0.59+, which can decrease the bundle size by using only the necessary transforms. | Yes (installed by `init` command) | | `@haul-bundler/basic-bundle-webpack-plugin` | [![basic-bundle-webpack-plugin version][version-basic-bundle-webpack-plugin]][package-basic-bundle-webpack-plugin] | Webpack plugin with tweaks for plain JS bundle. | Yes (installed with `cli`) | | `@haul-bundler/ram-bundle-webpack-plugin` | [![ram-bundle-webpack-plugin version][version-ram-bundle-webpack-plugin]][package-ram-bundle-webpack-plugin] | Webpack plugin for RAM bundle support. | Yes (installed with `cli`) | | `@haul-bundler/preset-0.59` | [![preset-0.59 version][version-preset-0.59]][package-preset-0.59] | Preset with configuration tweaked for RN 0.59. | Yes (installed by `init` command when using RN 0.59) | | `@haul-bundler/preset-0.60` | [![preset-0.60 version][version-preset-0.60]][package-preset-0.60] | Preset with configuration tweaked for RN 0.60. | Yes (installed by `init` command when using RN 0.60) | | `@haul-bundler/explore` | [![explore version][version-explore]][package-explore] | Explore and analyse generated bundle | No (optional) | ## Getting started Start by adding Haul as a dependency to your React Native project (use `react-native init MyProject` to create one if you don't have a project): ```bash yarn add --dev @haul-bundler/cli # Traditionalist? No problem: npm install --save-dev @haul-bundler/cli ``` To configure your project to use haul, run the following: ```bash yarn haul init # npm >= 5.2.0 : npx haul init # npm < 5.2.0 : npm install -g npx npx haul init ``` This will automatically add the configuration needed to make Haul work with your app, e.g. add `haul.config.js` to your project, which you can customize to add more functionality. Next, you're ready to start the development server: ```bash yarn haul start # Or: npx haul start ``` Finally, reload your app to update the bundle or run your app just like you normally would: ```bash react-native run-ios ```