π·ββοΈ Set of CLIs to scaffold and build React Native libraries for different targets.
Documentation is available at https://callstack.github.io/react-native-builder-bob/.
This project uses a monorepo using yarn. To setup the project, run yarn in the root directory to install the required dependencies.
yarnWhile developing, you can run watch mode to automatically rebuild the changes:
yarn watchTo test the CLI locally, you can point to the appropriate executable:
../bob/packages/create-react-native-library/bin/create-react-native-libraryBefore sending a pull request, make sure your code passes TypeScript and ESLint. Run the following to verify:
yarn typecheck yarn lintTo fix formatting errors, run the following:
yarn lint --fixThe documentation for the project is under docs directory. To run the documentation locally, run the following:
yarn docs devMaintainers with write access to the GitHub repo and the npm organization can publish new versions. To publish a new version, first, you need to export a GH_TOKEN environment variable as mentioned here. Then run:
yarn lerna publishThis will automatically bump the version and publish the packages. It'll also publish the changelogs on GitHub for each package.
When releasing a pre-release version, we need to:
- Update
lerna.jsonto set thepreId(e.g.next) andpreDistTag(e.g.next) fields, and potentially theallowBranchfield. - Run the following command:
yarn lerna publish --conventional-commits --conventional-prerelease --preid nextWhen releasing a stable version, we need to:
- Remove the
preIdandpreDistTagfields fromlerna.json. - Run the following command:
yarn lerna publish --conventional-commits --conventional-graduateThanks to the authors of these libraries for inspiration:
Some other tools for building React Native libraries that you may want to check out:
- create-expo-module
- react-native-module-init (Unmaintained)
MIT