All Projects → callstack → Haul

callstack / Haul

Licence: mit
Haul is a command line tool for developing React Native apps, powered by Webpack

Programming Languages

typescript
32286 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
objective c
16641 projects - #2 most used programming language
Starlark
911 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Haul

Create Elm App
🍃 Create Elm apps with zero configuration
Stars: ✭ 1,650 (-53.92%)
Mutual labels:  webpack, cli
Webpack Serve
Takes your webpack config and creates a development server with hot module reloading and error overlay
Stars: ✭ 177 (-95.06%)
Mutual labels:  webpack, cli
Mhy
🧩 A zero-config, out-of-the-box, multi-purpose toolbox and development environment
Stars: ✭ 128 (-96.43%)
Mutual labels:  webpack, cli
Cjstoesm
A tool that can transform CommonJS to ESM
Stars: ✭ 109 (-96.96%)
Mutual labels:  webpack, cli
Webpack Command
[DEPRECATED] Lightweight, modular, and opinionated webpack CLI that provides a superior experience
Stars: ✭ 218 (-93.91%)
Mutual labels:  webpack, cli
Easywebpack Cli
A Powerful Cross-platform Webpack CLI Tool
Stars: ✭ 110 (-96.93%)
Mutual labels:  webpack, cli
Micro Starter
[Deprecated] 🔷 Basic (opinionated) starter kit for a micro app with webpack build
Stars: ✭ 144 (-95.98%)
Mutual labels:  webpack, cli
Initior
A command line application that let's you initialize your new projects the right way, replaces npm and yarn's init 🎆
Stars: ✭ 17 (-99.53%)
Mutual labels:  webpack, cli
Webpack Dashboard
A CLI dashboard for webpack dev server
Stars: ✭ 13,850 (+286.76%)
Mutual labels:  webpack, cli
Webpack Nano
A teensy, squeaky 🐤 clean Webpack CLI
Stars: ✭ 199 (-94.44%)
Mutual labels:  webpack, cli
Angular Librarian
An Angular 2+ scaffolding setup for creating libraries
Stars: ✭ 92 (-97.43%)
Mutual labels:  webpack, cli
Bruce Cli
A React/Vue application automation build scaffold with zero configuration out of the box
Stars: ✭ 283 (-92.1%)
Mutual labels:  webpack, cli
Angular Cli Webpack
Webpack configuration modifier for @angular/cli
Stars: ✭ 72 (-97.99%)
Mutual labels:  webpack, cli
Nutmeg
Build, test, and publish vanilla Web Components with a little spice
Stars: ✭ 111 (-96.9%)
Mutual labels:  webpack, cli
Feflow
🚀 A command line tool aims to improve front-end engineer workflow and standard, powered by TypeScript.
Stars: ✭ 942 (-73.69%)
Mutual labels:  webpack, cli
Expo Cli
Tools for creating, running, and deploying universal Expo and React Native apps
Stars: ✭ 1,993 (-44.35%)
Mutual labels:  webpack, cli
X Build
🖖 Customizable front-end engineering scaffolding tools
Stars: ✭ 436 (-87.82%)
Mutual labels:  webpack, cli
Webpack Cli
webpack CLI provides the interface of options webpack uses in its configuration file. The CLI options override options passed in the configuration file.
Stars: ✭ 2,270 (-36.61%)
Mutual labels:  webpack, cli
Wpk
a friendly, intuitive & intelligent CLI for webpack
Stars: ✭ 232 (-93.52%)
Mutual labels:  webpack, cli
Vue Cli Plugin Electron Builder
Easily Build Your Vue.js App For Desktop With Electron
Stars: ✭ 3,549 (-0.89%)
Mutual labels:  webpack, cli

Haul

A command line tool for developing React Native apps


Build Status MIT License

PRs Welcome Code of Conduct

Chat 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 a go.

If you're already using Haul, we recommend migrating to Re.pack 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.

@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 CLI and commands implementation. Yes
@haul-bundler/core core version Core logic and functionality. Yes (installed with cli)
@haul-bundler/core-legacy core-legacy version Legacy logic from haul package Yes (installed with cli)
@haul-bundler/babel-preset-react-native babel-preset-react-native version 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 Webpack plugin with tweaks for plain JS bundle. Yes (installed with cli)
@haul-bundler/ram-bundle-webpack-plugin ram-bundle-webpack-plugin version Webpack plugin for RAM bundle support. Yes (installed with cli)
@haul-bundler/preset-0.59 preset-0.59 version 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 Preset with configuration tweaked for RN 0.60. Yes (installed by init command when using RN 0.60)
@haul-bundler/explore explore version 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):

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:

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:

yarn haul start
# Or:
npx haul start

Finally, reload your app to update the bundle or run your app just like you normally would:

react-native run-ios

Documentation

Check out the docs to learn more about available commands and tips on customizing the webpack configuration.

  1. CLI Commands
  2. Configuration
  3. Recipes
  4. Migration guide

Limitations

Haul uses a completely different architecture from React Native packager, which means there are some things which don't work quite the same.

  • Delta Bundles (RN 0.52+) have minimal support
  • Existing react-native commands
  • No support for Hot Module Replacement

The following features are unlikely to be supported in the future:

  • Haste module system: use something like babel-plugin-module-resolver instead
  • Transpile files under node_modules: transpile your modules before publishing, or configure webpack not to ignore them

Made with ❤️ at Callstack

Haul is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. Callstack is a group of React and React Native geeks, contact us at [email protected] if you need any help with these or just want to say hi!

Like the project? ⚛️ Join the team who does amazing stuff for clients and drives React Native Open Source! 🔥

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].