项目总览
项目定位
Rslib 是基于 Rsbuild 和 Rspack 的库构建工具。它面向 npm 库、组件库、Node 包、Module Federation 远程模块和部分实验性可执行程序场景,核心目标是在 Rsbuild 的应用构建能力之上提供更适合“库产物”的默认配置、格式抽象、bundleless 输出、声明文件生成和脚手架体验。
仓库采用 pnpm workspace 组织,核心逻辑集中在 packages/core,声明文件能力拆分到 packages/plugin-dts,项目初始化能力位于 packages/create-rslib。集成测试和端到端测试在 tests 下覆盖输出格式、外部化、bundleless、CSS、资源、Vue、React、Module Federation、可执行文件等行为。
技术栈
顶层目录
包职责
核心系统地图
设计理念
Rslib 的核心思路不是重新实现一个 bundler,而是把“库构建”中常见但容易踩坑的策略沉淀为 Rsbuild 环境配置。用户仍然可以使用 Rsbuild 生态的插件、source、output、tools 等能力,但 Rslib 会围绕 lib 数组为每个目标格式生成独立 environment,并补齐库构建所需的默认值。
几个关键设计取舍:
维护边界
packages/core决定“用户配置如何变成构建配置”,修改时必须考虑格式矩阵和 bundle/bundleless 双路径。packages/plugin-dts决定“声明文件如何生成和后处理”,修改时必须考虑 tsc、tsgo、isolated、bundle 和 watch 行为。packages/create-rslib决定“新项目长什么样”,修改模板时应同步检查模板测试和 README。tests/integration是行为契约的主要来源,新增核心行为通常应增加或更新 integration case。