介绍
Rsdoctor 是为 Rspack 生态打造的构建分析工具,通过可视化呈现构建过程与产物,帮助开发者排查构建问题、定位性能瓶颈;同时为 Agent 提供构建数据,支持对 JavaScript 程序的自动诊断与优化。
Tip
如果你在使用 webpack,可以使用 Rsdoctor 1.x,也可以参考 指南 迁移到 Rspack。
🔥 特性
- Agent 驱动分析:为 Agent 提供构建数据,支持对 JavaScript 程序的自动诊断与优化
- 编译可视化:直观呈现编译过程与耗时,帮助开发者排查构建问题、定位性能瓶颈
- 多维度分析:覆盖构建产物、构建过程与规则检查:
- 产物分析:查看资源列表、产物体积与模块依赖关系
- 过程分析:分析 Loader、Plugin 的执行情况与模块解析过程
- 规则检查:检测重复依赖包、检查 ECMAScript 语法版本,发现潜在的构建问题
🛠️ 功能介绍
⭐️ 概览
- 概览页(即首页)能够知道项目配置、诊断信息、编译信息、产物情况。

- 除了有项目概览之外,我们还提供了诊断模块,分别是编译诊断、重复包诊断等。如果你的编译、产物命中了我们定义的诊断规则,就会在工具首页出现对应的警示模块, 其中重复包可以查看到详细的引用路径:

⭐️ 编译分析
面向 Loaders、Plugins、Module Resolve 提供了对应的数据与分析功能,来帮助你分析编译过程上的问题。
Loader 分析
-
该模块用于分析 Rspack Loaders 的输入输出、预估耗时和参数等数据。
Plugin 分析
- 该模块主要拦截并收集了 Plugins 的调用次数、预估耗时等数据信息。

Resolve 分析
- 该模块主要提供了项目内部单个文件中模块解析的路径数据以及预估耗时。Rspack 支持通过
features开启该模块。

⭐️ 产物分析
-
我们在「Bundle Size」模块中,可以看到当前项目的产物数据信息概览,以及分析重复包引入的体积与原因。
-
此外,我们还可以通过「Bundle Analysis」 模块来进一步分析当前产物中产物与模块关系,体积数据等信息以及模块引入的原因。

⭐️ Bundle diff
使用 Rsdoctor 提供的 Bundle Diff 功能,可以看到产物内的资源体积、重复包、Packages 等数据的变化以及每个资源中的模块文件的大小及代码的变化。
可参考Bundle Diff 文档了解更多。
🧑💻 社区
欢迎加入我们的 Discord 交流频道!Rstack 团队和用户都在那里活跃,并且我们一直期待着各种贡献。
你也可以加入 飞书群 与大家一起交流。



