创建并发布你自己的 React 库
目录
在软件开发中,我们通常会重复使用一些代码,并从中提取出在多个地方需要的部分。前端开发和 React 也不例外。因此,有时我们也想创建 React 库。在 React 中,库或包可以是任何东西,例如一个组件,一组组件,它们可以只是 UI 部分,也可以包含一些重复的逻辑。

第一章使用 create-react-library 创建你的库
创建 React 库的一个非常快速简单的方法是使用create-react-library。我们都知道create-react-app
,create-react-library
创建库也是同样如此。
要创建新库,只需运行:
npx create-react-library <LIBRARY_NAME>
我们将调用我们的bornfight-react-library
命令,因此命令将是:
npx create-react-library bornfight-react-library
请注意将本文中出现的库名称替换为您的库名称。
然后,系统会要求您选择如图所示的几个选项。请务必选择:
typescript
作为模板yarn
作为包管理器- 如果需要的话,其余部分可以稍后轻松更改
package.json
。
就是这样,您已经创建了自己的 React 库。

运行并构建你的库
在项目根目录下执行:
yarn start
开发、测试并展示您的作品
选项A)使用CRA
目录中有 CRA example
。它也可以通过执行以下命令来启动:
cd example
yarn start
选项 B)使用 Storybook
如果您更喜欢使用 Storybook,您可以将其额外安装到 CRA 中:
cd example
npx sb init
这意味着您需要将故事与组件分开编写。
故事将位于目录中
example
,而组件则应在项目根目录中编写。否则,如果您想将 Storybook 安装在项目根目录中,则会破坏 CRA,因此不建议这样做。
第二章发布使用 create-react-library 创建的 npm 包
发布 React 库意味着发布 Node 包。你可以将 Node 包发布到知名的公共仓库(例如npmjs.com),也可以发布到任何其他仓库(例如Github Packages)。
简单场景发布通常包括执行:
npm login
npm publish
有关出版的更多信息可在本章的其余部分找到。
I)作为公共包发布到 npm.js 注册表
1)确保在 package.json 中提供了正确的名称和版本
如果你想在你的 npm 组织(这里是@bornfight )下发布它,你的更改应该如下所示:
- "name": "bornfight-react-library",
- "version": "1.0.0",
+ "name": "@bornfight/bornfight-react-library",
+ "version": "0.0.1",
否则,如果您想在您的帐户下发布它,只需忽略此步骤并保留不带组织前缀的包名称。
2)登录你的 npm 帐户
npm login
然后系统将提示您输入用户名、密码和电子邮件。
3)发布包
npm publish --access public
如果您不在组织下发布它,--access public
则标记不是必需的,因为它将是默认选项。
II)作为私有包发布到 Github Packages
1)确保您提供了正确的名称、版本和存储库,例如
"name": "@bornfight/bornfight-react-library",
"version": "0.0.1",
"repository": "https://github.com/bornfight/bornfight-react-library",
2)更新发布配置以指向 Github 包注册表
"publishConfig": {
"registry": "https://npm.pkg.github.com"
}
3)登录你的 Github
npm login
然后系统将提示您输入用户名、密码和电子邮件。
使用Github 个人访问令牌作为密码。
4)发布包
npm publish
已使用的资源和更多信息📚
- soshace.com - 如何创建 React 组件库 – 使用模态示例
- blog.bitsrc.io - 构建你自己的 React 组件库的 3 种方法
- betterprogramming.pub - 构建 React 组件库并发布到 GitHub 包注册表
- javascript.plainenglish.io - 如何在 npm 上发布你的 React 组件
- betterprogramming.pub - 如何发布 React 组件库
- javascript.plainenglish.io - 使用 GitHub Packages 发布私有 npm 包
- blog.anoff.io - 免费将私有 npm 包发布到 GitHub 包注册表
你的想法?🤔
- 您是否已经自行创建了一些 React 库或 npm 包?
- 您使用了哪些工具?
- 您尝试过TSDX吗?