Repack

A Webpack-based toolkit to build your React Native application with full su...

README

repack


A Webpack-based toolkit to build your React Native application with full support of Webpack ecosystem.



Re.Pack is a next generation of Haul — a Webpack-based bundler for React Native applications.

Re.Pack uses Webpack 5 and React Native CLI's plugin system to allow you to bundle your application using Webpack and allow to easily switch from Metro.

__Check the base [webpack.config.cjs](https://github.com/callstack/repack/blob/main/templates/webpack.config.cjs) or [webpack.config.mjs](https://github.com/callstack/repack/blob/main/templates/webpack.config.mjs) template, if you're curious how it all looks like.__

Features


- [x] Webpack ecosystem, plugins and utilities
- [x] Build production bundle for iOS, Android and out-of-tree platforms
- [x] Build development bundle for iOS, Android and out-of-tree platforms
- [x] Development server with support for:
  - Remote JS debugging
  - Source Map symbolication
  - Hot Module Replacement and React Refresh
  - Reloading application from CLI using r key
- [x] Built-in Hot Module Replacement + React Refresh support
- [x] Flipper support:
  - Crash Reporter,
  - Application logs
  - Layout
  - Network
  - Hermes debugger
  - React DevTools
  - Development server (debugging/verbose) logs
- [x] Hermes support:
  - Running the production/development bundle using Hermes engine
  - Transforming production bundle into bytecode bundle
  - Inspecting running Hermes engine with Flipper
- [x] Code splitting (__experimental__):
  - Dynamic import() support with and without React.lazy() (recommended).
  - Arbitrary scripts (only for advanced users).
- [x] REST API for development server:
  - GET /api/platforms - platforms with active compilations.
  - GET /api/:platform/assets - assets emitted from compilation.
  - GET /api/:platform/stats - data about compilation.
- [x] Module Federation support

Planned features


Available at: Projects

- [ ] ChunksToHermesBytecodePlugin plugin to automatically transform async chunks to bytecode format.
- [ ] Code signing and verification
- [ ] webpack-init command


Examples


Explore examples of React Native applications using Re.Pack here: https://github.com/callstack/repack-examples.

For a more comprehensive example of a Super App setup with Module Federation please visit our Super App Showcase repository.

Documentation


The documentation is available at: https://re-pack.netlify.app/

You can also use the following links to jump to specific topics:


Made with ❤️ at Callstack


@callstack/repack 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 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! 🔥