包与模块清单

Workspace 结构

Rslib monorepo 的生产包位于 packages

@rslib/core

路径:packages/core

职责

@rslib/core 是主包,负责:

  • 暴露 rslib CLI。
  • 暴露编程式 API:createRslibdefineConfigloadConfigmergeRslibConfig
  • 将 Rslib 配置转换成 Rsbuild environments。
  • 封装库构建默认值,包括 format、bundleless、externals、CSS、asset、dts、exe。
  • 提供与 Rsbuild、Rspack 的类型和对象透传。

关键目录

路径说明
src/cliCLI 命令注册、参数解析、初始化
src/config.ts配置派生主逻辑
src/createRslib.tsRslib 实例和 build、inspect、mf-dev
src/loadConfig.ts配置查找和加载
src/mergeConfig.tsRslib 配置合并,特别是 lib.id 合并
src/typesRslib 配置和公共 API 类型
src/cssbundleless CSS extract 适配
src/asset资源规则和 SVGR patch
src/pluginsentry chunk 和 shims 插件
src/exe实验性可执行文件生成
testscore 单元测试

公共 API

公共导出集中在 src/index.ts。新增导出时应谨慎评估 API 稳定性,因为这里是用户直接 import 的边界。

维护重点

  • src/config.ts 是高风险文件,改动要覆盖多 format、多 target、bundle 和 bundleless。
  • src/types/config.ts 的默认值注释需要与运行时保持一致。
  • src/mergeConfig.tslib 的合并规则是按 id 深合并,无 id 的 item 追加;修改会影响用户组合配置的方式。

rsbuild-plugin-dts

路径:packages/plugin-dts

职责

rsbuild-plugin-dts 是独立 Rsbuild 插件,负责声明文件生成和后处理。它可以被 Rslib 调用,也保留单独插件形态。

关键目录

路径说明
src/index.ts插件入口和生命周期
src/backend.ts后端选择和 isolated 约束
src/dts.ts子进程生成入口
src/tsc.tsTypeScript Compiler API 后端
src/tsgo.tstsgo 后端
src/isolated.tsRspack isolated dts 后端
src/apiExtractor.tsdts bundle
src/utils.ts文件处理、tsconfig、alias、redirect
testsdts 单元测试

维护重点

  • 插件在 onBeforeEnvironmentCompile 启动任务,在 onAfterBuild 等待结果和抛错。
  • tsc 后端使用子进程,避免阻塞主构建进程并隔离 TypeScript 状态。
  • isolated 后端直接配置 Rspack 内置 RslibPlugin,依赖其参数结构。
  • bundle 依赖 @microsoft/api-extractor,缺失时会给用户明确错误。

create-rslib

路径:packages/create-rslib

职责

create-rslib 基于 create-rstack 创建新项目。它提供基础模板、可选工具叠加和可选 agent skills。

关键目录

路径说明
src/index.tscreate-rstack 配置、模板选择、额外工具和 skills
src/parseTemplateName.ts模板名解析,默认补 -ts
template-common通用模板文件
template-node-*Node ESM 或 dual package 模板
template-react-*React 模板
template-vue-*Vue 模板
template-svelte-*Svelte 模板
template-rspressRspress 文档工具叠加
template-storybookStorybook 工具叠加
template-react-compilerReact Compiler 工具叠加
test脚手架单元测试

维护重点

  • 新增模板时要更新 TEMPLATES、交互选项、测试和 README。
  • 额外工具通过 copyFolder 合并到项目,若包含 package.json 会 merge。
  • Rspress 工具会读取生成项目 package name,并替换 docs 和 tsconfig 中的 {{ packageName }}
  • skills 列表会随工具条件动态展示。

测试辅助包

路径:tests/scripts

这不是发布包,但对集成测试很重要。它导出:

文件作用
shared.ts构建配置生成、CLI 运行、结果收集、fixture 路径
helper.ts文件断言、轮询、日志等待、glob 内容读取
rsbuild.tsE2E dev server 辅助,随机端口、合并测试配置
rstest.tsRstest 文件内容断言

维护测试时优先复用这些工具,避免每个 case 重复启动逻辑和文件扫描逻辑。

网站和文档站

路径:website

website 是 Rspress 文档站,包含:

  • docs/endocs/zh:英文和中文用户文档。
  • theme:首页和主题组件。
  • rspress.config.ts:站点配置。
  • doc_build:构建后的文档产物,通常不应手动维护。

本 wiki 面向维护者内部理解,官网文档面向用户配置和用法。修改用户可见行为时,两边可能都需要更新,但职责不同。

目录和产物注意事项

  • distdist-typestsconfig.tsbuildinfo 是包构建产物或类型产物,不应作为理解源码的第一入口。
  • tests/test-results 是 Playwright 运行产物,不应手动维护。
  • examples 用于验证真实使用场景,pnpm build:examples 和 E2E 会依赖它们。