Create and publish your own React library

Table Of Contents

Chapter #1 Create your library with create-react-library
Chapter #2 Publishing a npm package created with create-react-library

In software development in general, we always tend to reuse some code and extract parts of it…


This content originally appeared on DEV Community and was authored by Damir Drempetić

Table Of Contents

In software development in general, we always tend to reuse some code and extract parts of it that we need in multiple places. Front-end development nor React are not an exception. Therefore, sometimes we want to create React libraries as well. When talking about React, library or package could be anything, e.g. one component, a whole set of them, they could be just UI parts but also include some logic that is repeated.

Chapter #1 Create your library with create-react-library

One very quick and simple way of creating React library is by using create-react-library. We all know about create-react-app and let’s say create-react-library is the same thing for creating libraries.

To create a new library simply run:

npx create-react-library <LIBRARY_NAME>

We will call ours bornfight-react-library so the command would be:

npx create-react-library bornfight-react-library

Take attention to replace this library name with yours in any occurrence in this post.

You will be then asked for a few options as displayed on the image. It’s important to select:

  1. typescript as a template
  2. yarn as a package manager
  3. rest can be changed easily later in package.json if necessary. image

That’s it, you’ve created your own React library.

Run and build your library

Executing in the project root directory:

yarn start

Develop, test and showcase your work

Option A) Using CRA

There is CRA in the examples directory. It is also started by executing:

cd examples
yarn start

Option B) Using Storybook

If you prefer using Storybook you can install it additionally to CRA:

cd examples
npx sb init

This means you will need to write your stories separately from components.

Stories will be located in the examples dir, while you write your components in the project root. Otherwise, if you want to install Storybook in the project root, it breaks the CRA and therefore it is not suggested.

Chapter #2 Publishing a npm package created with create-react-library

Publishing React library means publishing node package. You can publish node packages either to a well-known public registry like npmjs.com or any other registry e.g. Github Packages.

Simple scenario publishing usually includes executing:

npm login
npm publish

More about publishing can be found in the rest of the chapter.

I) Publishing as a public package to npm.js registry

1) Ensure you provided correct name and version in package.json

If you want to publish it under your npm organisation (here @bornfight , your changes should look like:

-  "name": "bornfight-react-library",
-  "version": "1.0.0",

+  "name": "@bornfight/bornfight-react-library",
+  "version": "0.0.1",

Otherwise, if you want to publish it under your account just ignore this step and keep the package name without an organization prefix.

2) Login to your npm account

npm login

You will be then prompted to enter your username, password and email.

3) Publish package

npm publish

II) Publishing as a private package to Github Packages

1) Ensure you provided correct name, version and repository, e.g.

"name": "@bornfight/bornfight-react-library",
"version": "0.0.1",
"repository": "https://github.com/bornfight/bornfight-react-library",

2) Update publish config to point to Github Packages registry

  "publishConfig": {
    "registry": "https://npm.pkg.github.com"
  }

3) Login to your Github

npm login

You will be then prompted to enter your username, password and email.

Use Github personal access token as password.

4) Publish package

npm publish

Used resources and more information ?

Your thoughts? ?

  • Did you already create some React libraries or npm packages on your own?
  • Which tools did you use?
  • Did you ever tried TSDX?


This content originally appeared on DEV Community and was authored by Damir Drempetić


Print Share Comment Cite Upload Translate Updates
APA

Damir Drempetić | Sciencx (2021-09-20T07:28:27+00:00) Create and publish your own React library. Retrieved from https://www.scien.cx/2021/09/20/create-and-publish-your-own-react-library/

MLA
" » Create and publish your own React library." Damir Drempetić | Sciencx - Monday September 20, 2021, https://www.scien.cx/2021/09/20/create-and-publish-your-own-react-library/
HARVARD
Damir Drempetić | Sciencx Monday September 20, 2021 » Create and publish your own React library., viewed ,<https://www.scien.cx/2021/09/20/create-and-publish-your-own-react-library/>
VANCOUVER
Damir Drempetić | Sciencx - » Create and publish your own React library. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/09/20/create-and-publish-your-own-react-library/
CHICAGO
" » Create and publish your own React library." Damir Drempetić | Sciencx - Accessed . https://www.scien.cx/2021/09/20/create-and-publish-your-own-react-library/
IEEE
" » Create and publish your own React library." Damir Drempetić | Sciencx [Online]. Available: https://www.scien.cx/2021/09/20/create-and-publish-your-own-react-library/. [Accessed: ]
rf:citation
» Create and publish your own React library | Damir Drempetić | Sciencx | https://www.scien.cx/2021/09/20/create-and-publish-your-own-react-library/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.