REGISTER

Bob — The React Native library builder

Satyajit Sahoo
2019-04-12

blog content

Need help with React Native?
hire us
Our React Native EU Conference is back
register nowlearn more

It’s a common practice to publish React Native libraries as source code without building them. Metro handles compiling JavaScript and TypeScript files by default, so it mostly works.

But there are many reasons you should compile your JavaScript and TypeScript code when publishing.

  • Jest doesn’t compile code under node_modules by default, so it’s extra work for users to configure Jest when testing.
  • It’s common to exclude node_modules when compiling for bundlers such as webpack. If your library is cross-platform and supports web, it should have first-class support for other bundlers.
  • If your library supports web, you should pre-compile it so that the user can import it in Node for SSR.

The main reason many people don’t compile the code when publishing is because it’s not straightforward. We need to take care of many things, for example, different entry points and babel configuration for different targets. If we use a static type checker such as Flow or TypeScript, we also need to take care of generating and publishing the type definitions.

We built Bob to simplify this and take care of it automatically. All the scripts and Babel config are abstracted away. It can also automatically configure your project to use it just by running yarn bob init.

Currently, it handles the following targets,

  • Generic CommonJS build
  • ES modules build for bundlers such as webpack
  • Flow definitions (copies .js files to .flow files)
  • TypeScript definitions (uses tsc to generate declaration files)

Bob’s goal is to standardize these build scripts across the React Native libraries in the community. We plan to implement more things in the future, including a watch mode.

For installation and usage instructions, check out the repo. If you face any issues with version, please report them on our issue tracker, and don’t forget to star it 🌟.

Author:
Satyajit Sahoo
Satya is in the 2016 Facebook’s TOP 5 external contributors list. You can find him everywhere. Satya is also a React & React Native ninja that will make your apps to stand above the others.
arrow icon
MORE posts from this author

learn more

More posts from this category

stay tuned

Subscribe to our newsletter

You may unsubscribe from these communications at any time. For details see the Privacy Policy.