Awesome
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.
yarn
While developing, you can run watch mode to automatically rebuild the changes:
yarn watch
To test the CLI locally, you can point to the appropriate executable:
../bob/packages/create-react-native-library/bin/create-react-native-library
Before sending a pull request, make sure your code passes TypeScript and ESLint. Run the following to verify:
yarn typecheck
yarn lint
To fix formatting errors, run the following:
yarn lint --fix
The documentation for the project is under docs
directory. To run the documentation locally, run the following:
yarn docs dev
Publishing
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 publish
This 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.json
to set thepreId
(e.g.next
) andpreDistTag
(e.g.next
) fields, and potentially theallowBranch
field. - Run the following command:
yarn lerna publish --conventional-commits --conventional-prerelease --preid next
When releasing a stable version, we need to:
- Remove the
preId
andpreDistTag
fields fromlerna.json
. - Run the following command:
yarn lerna publish --conventional-commits --conventional-graduate
Acknowledgments
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
<!-- badges -->