🚀🚀🚀 Webpack 项目也可以引入大模型问答了!感谢 Rsdoctor 1.2 !

前言

今天发现 Rsdoctor 发布了 1.2 版本预览版本,带来很多功能外还支持 Webapck,所以我们今天来看看更新哪些内容吧!

往期精彩推荐

正文

本次更新通过深入的拼接模块分析、Gzip 压缩大小支持和优化的 Treemap 可视化,帮助开发者更准确地了解构建产物,优化代码分割策略。此外,Rsdoctor MCP 引入了基于 LLM 的智能 Q&A 功能,

以下是 Rsdoctor 1.2 的核心更新和功能的详细介绍。

1. 深入的拼接模块分析

在 Rspack 构建过程中,部分模块会被提升或聚合为单一闭包,形成拼接模块(concatenated modules),以提高浏览器执行效率并减小产物体积。然而,此前 Rsdoctor 无法深入分析这些模块的内部结构,因为它们无法通过 AST 解析进一步拆分。

Rsdoctor 1.2 新增了对拼接模块大小的分析功能,开发者可以:

  • 精准分析子模块:了解 tree shaking 和压缩后子模块的真实构建大小。
  • 优化代码分割:通过分析拼接模块对最终 bundle 大小的影响,优化分包策略。

对于 Rspack (>=1.4.11) 项目,Rsdoctor 插件增强了 source map 能力,无需显式启用即可分析拼接模块。Webpack 项目则仍需启用 source map。

示例

javascript 复制代码
// rspack.config.js
const { RsdoctorRspackPlugin } = require('@rsdoctor/rspack-plugin');

module.exports = {
  plugins: [
    process.env.RSDOCTOR && new RsdoctorRspackPlugin({
      // 启用拼接模块分析
    }),
  ].filter(Boolean),
};

2. Gzip 压缩大小支持

为了更准确地反映生产环境的资源体积,Rsdoctor 1.2 新增了 Gzip 压缩大小分析功能。开发者可以在 Bundle Size 页面和 Treemap 页面查看:

  • 原始大小与 Gzip 压缩大小的对比。
  • 更精确的生产环境优化数据。

3. 优化的 Treemap 可视化

Treemap 是开发者分析 bundle 组成的核心工具,但此前 Rsdoctor 的 Treemap 视图基于 webpack-bundle-analyzer,分析效率较低,页面加载速度慢。

Rsdoctor 1.2 推出了全新的经典 Treemap 视图,带来以下改进:

  • 更快的加载速度:无需重复处理分析数据,提升整体效率。
  • 直观的可视化:更清晰地展示 bundle 组成、资源和模块比例。
  • 交互性增强:支持模块资源搜索和点击放大,方便定位特定模块。

开发者可以通过 Treemap 视图快速识别资源分布,优化项目结构。

4. Rsdoctor MCP:智能 Q&A 分析

Rsdoctor 1.2 延续了 1.1 版本引入的 MCP(Model Context Protocol)支持,通过 LLM 提供智能化的构建分析。开发者可以通过自然语言提问快速获取分析结果,例如:

  • "哪些包的体积最大?"
  • "为什么这个模块没有被 tree-shaken?"

Rsdoctor MCP 结合了 Rsdoctor 的分析能力和 LLM 的智能理解,支持以下核心功能:

  • 产物信息查询
  • 依赖关系分析
  • 优化建议生成
  • 编译性能分析
  • Tree shaking 分析

使用 Rsdoctor

bash 复制代码
npm install @rsdoctor/rspack-plugin@1.2 -D

rspack.config.jswebpack.config.js 中注册 Rsdoctor 插件:

javascript 复制代码
const { RsdoctorRspackPlugin } = require('@rsdoctor/rspack-plugin');

module.exports = {
  plugins: [
    process.env.RSDOCTOR && new RsdoctorRspackPlugin({
      // 插件配置
    }),
  ].filter(Boolean),
};

运行构建命令

bash 复制代码
RSDOCTOR=true npm run build

最后

今天的分享就这些了,感谢大家的阅读!如果文章中存在错误的地方欢迎指正!

往期精彩推荐

相关推荐
陈随易19 小时前
有生之年系列,Nodejs进程管理pm2 v7.0发布
前端·后端·程序员
冰暮流星19 小时前
javascript之事件代理/事件委托
前端
陈随易20 小时前
AI时代,你还在坚持手搓文章吗
前端·后端·程序员
里欧跑得慢1 天前
17. Flutter Hero动画实现:让界面过渡更加优雅
前端·css·flutter·web
IT_陈寒1 天前
Vue的这个响应式陷阱,我debug了一整天才爬出来
前端·人工智能·后端
cn_mengbei1 天前
用React Native开发OpenHarmony应用:Reanimated共享元素过渡
javascript·react native·react.js
kyriewen1 天前
前端测试:别为了100%覆盖率而写测试,那是自欺欺人
前端·javascript·单元测试
去伪存真1 天前
我自己写的第一个skills--project-core-standards
前端·agent
Data_Journal1 天前
如何使用cURL更改User Agent
大数据·服务器·前端·javascript·数据库
掌心向暖RPA自动化1 天前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa