包与模块清单
Workspace 结构
Rslib monorepo 的生产包位于 packages:
@rslib/core
路径:packages/core
职责
@rslib/core 是主包,负责:
- 暴露
rslibCLI。 - 暴露编程式 API:
createRslib、defineConfig、loadConfig、mergeRslibConfig。 - 将 Rslib 配置转换成 Rsbuild environments。
- 封装库构建默认值,包括 format、bundleless、externals、CSS、asset、dts、exe。
- 提供与 Rsbuild、Rspack 的类型和对象透传。
关键目录
公共 API
公共导出集中在 src/index.ts。新增导出时应谨慎评估 API 稳定性,因为这里是用户直接 import 的边界。
维护重点
src/config.ts是高风险文件,改动要覆盖多 format、多 target、bundle 和 bundleless。src/types/config.ts的默认值注释需要与运行时保持一致。src/mergeConfig.ts对lib的合并规则是按id深合并,无 id 的 item 追加;修改会影响用户组合配置的方式。
rsbuild-plugin-dts
路径:packages/plugin-dts
职责
rsbuild-plugin-dts 是独立 Rsbuild 插件,负责声明文件生成和后处理。它可以被 Rslib 调用,也保留单独插件形态。
关键目录
维护重点
- 插件在
onBeforeEnvironmentCompile启动任务,在onAfterBuild等待结果和抛错。 - tsc 后端使用子进程,避免阻塞主构建进程并隔离 TypeScript 状态。
- isolated 后端直接配置 Rspack 内置 RslibPlugin,依赖其参数结构。
- bundle 依赖
@microsoft/api-extractor,缺失时会给用户明确错误。
create-rslib
路径:packages/create-rslib
职责
create-rslib 基于 create-rstack 创建新项目。它提供基础模板、可选工具叠加和可选 agent skills。
关键目录
维护重点
- 新增模板时要更新
TEMPLATES、交互选项、测试和 README。 - 额外工具通过
copyFolder合并到项目,若包含 package.json 会 merge。 - Rspress 工具会读取生成项目 package name,并替换 docs 和 tsconfig 中的
{{ packageName }}。 - skills 列表会随工具条件动态展示。
测试辅助包
路径:tests/scripts
这不是发布包,但对集成测试很重要。它导出:
维护测试时优先复用这些工具,避免每个 case 重复启动逻辑和文件扫描逻辑。
网站和文档站
路径:website
website 是 Rspress 文档站,包含:
docs/en和docs/zh:英文和中文用户文档。theme:首页和主题组件。rspress.config.ts:站点配置。doc_build:构建后的文档产物,通常不应手动维护。
本 wiki 面向维护者内部理解,官网文档面向用户配置和用法。修改用户可见行为时,两边可能都需要更新,但职责不同。
目录和产物注意事项
dist、dist-types、tsconfig.tsbuildinfo是包构建产物或类型产物,不应作为理解源码的第一入口。tests/test-results是 Playwright 运行产物,不应手动维护。examples用于验证真实使用场景,pnpm build:examples和 E2E 会依赖它们。