介绍
Rslib 是一个基于 Rsbuild 的库开发工具。
它帮助开发者以简单的方式创建 JavaScript 库和 UI 组件库,并为库开发中的构建、调试、文档编写和测试等环节提供工具集成与最佳实践。
为什么选择 Rslib
在开发组件库或工具库时,开发者不仅需要关注项目逻辑的实现,还需考虑项目的构建、调试、文档和测试等与代码逻辑无关的工作。现有许多社区工具与方案通常能较好地满足其中部分需求,但对于不熟悉这些工具与方案的开发者来说,往往需要繁琐的配置工作或多种工具配合使用,以满足这些需求。
Rslib 基于 Rspack 与 Rsbuild 实现,针对库开发场景的多样化需求,提供了一套完整的解决方案,有效解决了库开发中的工具生态不完善、模块规范兼容成本高、产物优化不足等问题。Rslib 对 webpack 对 library ESM 产物支持不足的情况进行了优化,减少了冗余的运行时代码,可以产出对库消费者友好的支持 tree-shaking 的高质量 ESM 产物。同时,Rslib 充分发挥了 Rspack 带来的构建性能优势,并利用 webpack / Rspack 生态的优势,很好地支持了模块联邦等功能。
此外,Rslib 可以利用 Rsbuild 开箱即用的配置,与应用项目实现配置共享,解决应用项目与库项目之间构建配置难以复用的问题,进而降低开发者的配置成本,提升开发效率与体验。
未来,Rslib 将基于 Rspack 的新特性,探索更多的可能性。
特性
Rslib 具备以下特性:
-
易于配置:Rslib 为库开发提供开箱即用的构建能力,使开发者能够在零配置的情况下开发库项目。同时,Rslib 提供一套语义化的构建配置,可随着项目需求灵活扩展。
-
性能优先:Rslib 由 Rspack 驱动,集成了社区中基于 Rust 的高性能工具,包括 SWC 和 Lightning CSS,以提供一流的构建速度和开发体验。
-
插件生态:Rslib 可以使用 Rsbuild 的官方插件,也兼容大部分 webpack 插件和所有 Rspack 插件,这意味着开发者可以在 Rslib 中使用社区或公司内现有的插件,并沿用在 webpack 和 Rspack 生态中积累的知识与工程经验。
-
产物灵活:Rslib 设计时充分考虑了库发布与消费场景的多样性,支持根据不同的运行环境、分发方式和下游构建工具灵活配置产物输出,满足不同类型库的交付需求。
-
框架无关:Rslib 不与前端 UI 框架耦合,并通过插件支持 React、Vue、Svelte、Solid 等框架,让开发者能够以一致的配置和开发方式构建不同框架的组件库。
Rstack
Rslib 是 Rstack 的一员。Rstack 是为开发者与 Agent 打造的高性能、一体化 JavaScript 工具链。
Rstack 包含以下工具:
链接
- awesome-rstack:与 Rstack 相关的精彩内容列表。
- agent-skills:Rstack 的 Agent Skills 合集。
- rstack-examples:Rstack 的示例项目。
- storybook-rsbuild:基于 Rsbuild 构建的 Storybook。
- rsbuild-plugin-template:使用此模板创建你的 Rsbuild 插件。
- rstack-design-resources:Rstack 的设计资源。
社区
欢迎加入我们的 Discord 交流频道!Rstack 团队和用户都在那里活跃,并且我们一直期待着各种贡献。
你也可以加入 飞书群 与大家一起交流。
在线示例
通过 StackBlitz 示例 在线体验 Rslib。
下一步
请阅读 快速上手 来开始使用 Rslib。
