{"id":4819,"url":"https://github.com/callstack/haul","last_synced_at":"2025-05-14T04:07:29.945Z","repository":{"id":39351876,"uuid":"85622333","full_name":"callstack/haul","owner":"callstack","description":"Haul is a command line tool for developing React Native apps, powered by Webpack","archived":false,"fork":false,"pushed_at":"2022-03-09T23:54:54.000Z","size":5695,"stargazers_count":3649,"open_issues_count":48,"forks_count":192,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-05-09T08:04:52.320Z","etag":null,"topics":["cli","react-native","webpack"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/callstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-20T20:23:31.000Z","updated_at":"2025-05-08T09:40:10.000Z","dependencies_parsed_at":"2022-07-11T21:31:08.013Z","dependency_job_id":null,"html_url":"https://github.com/callstack/haul","commit_stats":null,"previous_names":["callstack-io/haul"],"tags_count":162,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstack%2Fhaul","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstack%2Fhaul/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstack%2Fhaul/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstack%2Fhaul/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/callstack","download_url":"https://codeload.github.com/callstack/haul/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254069081,"owners_count":22009486,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","react-native","webpack"],"created_at":"2024-01-05T20:17:25.160Z","updated_at":"2025-05-14T04:07:29.918Z","avatar_url":"https://github.com/callstack.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Haul\" src=\"https://cloud.githubusercontent.com/assets/1174278/24502391/25619f98-156b-11e7-994c-a8495b4735d5.png\" width=\"512\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A command line tool for developing React Native apps\n\u003c/p\u003e\n\n---\n\n[![Build Status][build-badge]][build]\n[![MIT License][license-badge]][license]\n\n\n[![PRs Welcome][prs-welcome-badge]][prs-welcome]\n[![Code of Conduct][coc-badge]][coc]\n\n[![Chat][chat-badge]][chat]\n[![tweet][tweet-badge]][tweet]\n\n---\n\n## Notice\n\nWe'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!\n\nIf you're investigating using Haul, we highly recommend giving a [Re.pack](https://github.com/callstack/repack) a go.\n\nIf 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`.\n\n---\n\nHaul 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.\n\n`@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).\n\n`@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.\n\n## Features\n\n- Replaces React Native packager to bundle your app\n- Access to full webpack ecosystem, using additional loaders and plugins is simple\n- Doesn't need watchman, symlinks work nicely\n- Helpful and easy to understand error messages\n\n## Packages\n\n| Name                                        | Version                                                                                                            | Description                                                                                                   | Required                                             |\n| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |\n| `@haul-bundler/cli`                         | [![cli version][version-cli]][package-cli]                                                                         | CLI and commands implementation.                                                                              | Yes                                                  |\n| `@haul-bundler/core`                        | [![core version][version-core]][package-core]                                                                      | Core logic and functionality.                                                                                 | Yes (installed with `cli`)                           |\n| `@haul-bundler/core-legacy`                 | [![core-legacy version][version-core-legacy]][package-core-legacy]                                                 | Legacy logic from `haul` package                                                                              | Yes (installed with `cli`)                           |\n| `@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)                    |\n| `@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`)                           |\n| `@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`)                           |\n| `@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) |\n| `@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) |\n| `@haul-bundler/explore`                     | [![explore version][version-explore]][package-explore]                                                             | Explore and analyse generated bundle                                                                          | No (optional)                                        |\n\n## Getting started\n\nStart 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):\n\n```bash\nyarn add --dev @haul-bundler/cli\n\n# Traditionalist? No problem:\nnpm install --save-dev @haul-bundler/cli\n```\n\nTo configure your project to use haul, run the following:\n\n```bash\nyarn haul init\n# npm \u003e= 5.2.0 :\nnpx haul init\n# npm \u003c 5.2.0 :\nnpm install -g npx\nnpx haul init\n```\n\nThis 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.\n\nNext, you're ready to start the development server:\n\n```bash\nyarn haul start\n# Or:\nnpx haul start\n```\n\nFinally, reload your app to update the bundle or run your app just like you normally would:\n\n```bash\nreact-native run-ios\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"635\" src=\"./docs/img/packager_server.gif\" /\u003e\n\u003c/p\u003e\n\n## Documentation\n\nCheck out the docs to learn more about available commands and tips on customizing the webpack configuration.\n\n1. [CLI Commands](docs/CLI%20Commands.md)\n2. [Configuration](docs/Configuration.md)\n3. [Recipes](docs/Recipes.md)\n4. [Migration guide](docs/Migration.md)\n\n\u003c!-- ### Hot Module Replacement\n\n__Hot Module Replacement is an experimental feature and it's disabled by default.__\n\nPlease refer to the [Setup guide](./docs/HMR_Setup.md). --\u003e\n\n## Limitations\n\nHaul uses a completely different architecture from React Native packager, which means there are some things which don't work quite the same.\n\n* Delta Bundles (RN 0.52+) have minimal support\n* Existing `react-native` commands\n* No support for Hot Module Replacement\n\nThe following features are **unlikely to be supported** in the future:\n\n- Haste module system: use something like [babel-plugin-module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) instead\n- Transpile files under `node_modules`: transpile your modules before publishing, or configure webpack not to ignore them\n\n## Made with ❤️ at Callstack\n\nHaul is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. [Callstack][callstack-readme-with-love] is a group of React and React Native geeks, contact us at [hello@callstack.com](mailto:hello@callstack.com) if you need any help with these or just want to say hi!\n\nLike the project? ⚛️ [Join the team](https://callstack.com/careers/?utm_campaign=Senior_RN\u0026utm_source=github\u0026utm_medium=readme) who does amazing stuff for clients and drives React Native Open Source! 🔥\n\n\u003c!-- badges --\u003e\n[build-badge]: https://img.shields.io/circleci/project/github/callstack/haul/master.svg?style=flat-square\n[build]: https://circleci.com/gh/callstack/haul\n[license-badge]: https://img.shields.io/npm/l/@haul-bundler/cli.svg?style=flat-square\n[license]: https://github.com/callstack/haul/blob/master/LICENSE\n[prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n[prs-welcome]: http://makeapullrequest.com\n[coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square\n[coc]: https://github.com/callstack/haul/blob/master/CODE_OF_CONDUCT.md\n[chat-badge]: https://img.shields.io/discord/426714625279524876.svg?style=flat-square\u0026colorB=758ED3\n[chat]: https://discord.gg/zwR2Cdh\n[tweet-badge]: https://img.shields.io/badge/tweet-%23haul-blue.svg?style=flat-square\u0026colorB=1DA1F2\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAYAAACXtf2DAAAAAXNSR0IArs4c6QAAAaRJREFUOBGtlM8rBGEYx3cWtRHJRaKcuMtBSitxkCQ3LtzkP9iUUu5ODspRHLhRLtq0FxeicEBC2cOivcge%2FMgan3fNM8bbzL4zm6c%2BPT%2Fe7%2FO8887svrFYBWbbtgWzsAt3sAcpqJFxxF1QV8oJFqFPFst5dLWQAT87oTgPB7DtziFRT1EA4yZolsFkhwjGYFRO8Op0KD8HVe7unoB6PRTBZG8IctAmG1xrHcfkQ2B55sfI%2ByGMXSBqV71xZ8CWdxBxN6ThFuECDEAL%2Bc9HIzDYumVZ966GZnX0SzCZvEqTbkaGywkyFE6hKAsBPhFQ18uPUqh2ggJ%2BUor%2F4M%2F%2FzOC8g6YzR1i%2F8g4vvSI%2ByD7FFNjexQrjHd8%2BnjABI3AU4Wl16TuF1qANGll81jsi5qu%2Bw6XIsCn4ijhU5FmCJpkV6BGNw410hfSf6JKBQ%2FUFxHGYBnWnmOwDwYQ%2BwzdHqO75HtiAMJfaC7ph32FSRJCENUhDHsLaJkL%2FX4wMF4%2BwA5bgAcrZE4sr0Cu9Jq9fxyrvBHWbNkMD5CEHWTjjT2m6r5D92jfmbbKJEWuMMAAAAABJRU5ErkJggg%3D%3D\n[tweet]: https://twitter.com/intent/tweet?text=Check%20out%20Haul!%20https://github.com/callstack/haul%20%F0%9F%91%8D\n[callstack-readme-with-love]: https://callstack.com/?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=react-native-paper\u0026utm_term=readme-with-love\n\n[version-cli]: https://img.shields.io/npm/v/@haul-bundler/cli.svg?style=flat-square\n[package-cli]: https://www.npmjs.com/package/@haul-bundler/cli\n[version-core]: https://img.shields.io/npm/v/@haul-bundler/core.svg?style=flat-square\n[package-core]: https://www.npmjs.com/package/@haul-bundler/core\n[version-core-legacy]: https://img.shields.io/npm/v/@haul-bundler/core-legacy.svg?style=flat-square\n[package-core-legacy]: https://www.npmjs.com/package/@haul-bundler/core-legacy\n[version-babel-preset-react-native]: https://img.shields.io/npm/v/@haul-bundler/babel-preset-react-native.svg?style=flat-square\n[package-babel-preset-react-native]: https://www.npmjs.com/package/@haul-bundler/babel-preset-react-native\n[version-basic-bundle-webpack-plugin]: https://img.shields.io/npm/v/@haul-bundler/basic-bundle-webpack-plugin.svg?style=flat-square\n[package-basic-bundle-webpack-plugin]: https://www.npmjs.com/package/@haul-bundler/basic-bundle-webpack-plugin\n[version-ram-bundle-webpack-plugin]: https://img.shields.io/npm/v/@haul-bundler/ram-bundle-webpack-plugin.svg?style=flat-square\n[package-ram-bundle-webpack-plugin]: https://www.npmjs.com/package/@haul-bundler/ram-bundle-webpack-plugin\n[version-preset-0.59]: https://img.shields.io/npm/v/@haul-bundler/preset-0.59.svg?style=flat-square\n[package-preset-0.59]: https://www.npmjs.com/package/@haul-bundler/preset-0.59\n[version-preset-0.60]: https://img.shields.io/npm/v/@haul-bundler/preset-0.60.svg?style=flat-square\n[package-preset-0.60]: https://www.npmjs.com/package/@haul-bundler/preset-0.60\n[version-explore]: https://img.shields.io/npm/v/@haul-bundler/explore.svg?style=flat-square\n[package-explore]: https://www.npmjs.com/package/@haul-bundler/explore\n","funding_links":[],"categories":["Utilities","TypeScript","cli"],"sub_categories":["Other Platforms"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallstack%2Fhaul","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcallstack%2Fhaul","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallstack%2Fhaul/lists"}