Serchinastico/react-native-builder-bob
๐ทโโ๏ธ Simple set of CLIs to scaffold and build React Native libraries for different targets
Bob
๐ทโโ๏ธ Set of CLIs to scaffold and build React Native libraries for different targets.
Documentation
Documentation is available at https://callstack.github.io/react-native-builder-bob/.
Development workflow
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 devPublishing
Maintainers 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-graduateAcknowledgments
Thanks to the authors of these libraries for inspiration:
Alternatives
There are other similar tools to scaffold React Native libraries. The difference is that the generated project with create-react-native-library is very opinionated and configured with additional tools.
LICENSE
MIT