mcpField
L
ln-832-bundle-optimizer

ln-832-bundle-optimizer

github.com/levnikolaevich开发584225 次安装2 天前更新
代码仓库

关于 ln-832-bundle-optimizer

此 Skill 通过测量构建产物并仅保留能缩小体积的改动,优化 JavaScript 和 TypeScript 项目的 Bundle。它会报告体积变化及尝试结果。

主要功能

  1. 01构建并测量 Bundle 基线
  2. 02查找未使用依赖和大型包
  3. 03通过构建验证保留或撤销改动
  4. 04报告体积变化及移除的依赖

适用场景

  1. 01缩小 JS/TS 项目的构建产物
  2. 02验证优化改动是否降低 Bundle 体积

MCP 相关

可用时,此 Skill 会使用 hex-graph 和 hex-line MCP 工具查找热点并读取本地内容;否则改用内置工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-832-bundle-optimizer

安装后在 Claude Code 中输入/ln-832-bundle-optimizer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
ci_tool_detection.md
coordinator_summary_contract.md
mcp_integration_patterns.md
mcp_tool_preferences.md
optimization_categories.md

详细介绍

路径: 文件路径(references/、../ln-*)均相对于此技能目录。

ln-832-bundle-optimizer

类型: L3 Worker 类别: 8XX 优化

使用保留/舍弃验证来减小 JavaScript 或 TypeScript Bundle 的体积。仅适用于 JS/TS 项目。


概述

方面详情
输入JS/TS 项目路径,以及可选的优化范围
输出更小的 Bundle,以及机器可读的现代化摘要
范围仅限 JS/TS

工作流

阶段: 预检 -> 基线 -> 分析 -> 优化循环 -> 报告


阶段 0:预检

检查必需缺少时的操作
存在 package.json是阻止优化
有可用的构建命令是阻止优化
可检测输出目录(dist/ 或 build/)是执行一次构建以建立基线
工作区基线安全是在受管运行中,协调器已提前准备好;在独立运行中,在本地保护回滚

必须阅读: 加载 references/ci_tool_detection.md 以检测构建方式。 工具策略:遵循宿主 AGENTS.md 中的 MCP 偏好;仅在宿主策略缺失或 MCP 行为不明确时,加载 references/mcp_tool_preferences.md 和 references/mcp_integration_patterns.md。

当热点或克隆组能显著提升优化定位效果时,优先使用 hex-graph。如果可用,优先使用 hex-line 读取本地代码和配置。如果 MCP 不可用、不受支持或未建立索引,则继续使用内置的 Read/Grep/Glob/Bash,并在摘要中说明回退情况。

运行时协调

受管运行会从 ln-830 接收确定性的 runId 和准确的 summaryArtifactPath。 仍支持独立运行;如果省略了运行时参数,则在返回前生成一个独立运行范围的制品。


阶段 1:建立基线

1. Run the detected build command.
2. Measure total size of the output directory.
3. Record baseline bytes and per-chunk sizes.
指标方法
总体积对所有 Bundle 输出文件求和,排除源映射文件
分块体积测量各个 JS 和 CSS 文件
源映射处理排除 .map 文件

阶段 2:分析优化机会

检查工具检查内容
未使用的依赖项depcheck 或同类工具未在任何位置导入的包
Bundle 组成Bundle 分析器体积较大的依赖项或重复项
Tree-shaking 缺口手动扫描命名空间导入或体积较大的入口点
代码拆分缺口路由分析可延迟加载的候选项

优化类别:

类别示例典型节省量
移除未使用的依赖项冗余依赖项每个包 10-50KB
命名导入lodash-es 命名导入50-200KB
更轻量的替代方案替换体积较大的日期或工具库50-300KB
动态导入延迟加载体积较大的组件减小初始 Bundle 体积
CSS 优化移除未使用的 CSS、压缩10-100KB

阶段 3:优化循环(保留/舍弃)

每个优化周期:

FOR each optimization:
  1. APPLY the change
  2. BUILD
     IF build fails -> DISCARD and revert
  3. MEASURE new bundle size
  4. KEEP only if the bundle is smaller than the current baseline
  5. LOG the result

停止条件:

条件操作
已处理所有优化项停止并报告
连续舍弃 3 次因优化停滞而停止
构建基础设施故障回滚到最近一次保留的状态并停止
Bundle 已低于目标值停止并报告

优化顺序:

  1. 移除未使用的依赖项
  2. 改进 Tree-shaking 和导入方式
  3. 替换体积较大的库
  4. 引入代码拆分
  5. 优化 CSS

阶段 4:报告结果

字段描述
project项目路径
baseline_bytes原始打包体积
final_bytes最终打包体积
reduction_bytes节省的字节数
reduction_percent缩减百分比
optimizations_applied保留的优化数量
optimizations_discarded数量及原因
deps_removed[]已移除的依赖项
details[]各项优化节省的体积
artifact_path持久化的工作器报告路径(如果已写入)

配置

Options:
  build_command: ""             # Auto-detect
  output_dir: ""                # Auto-detect
  run_depcheck: true
  run_bundle_analyzer: false
  remove_unused_deps: true
  fix_tree_shaking: true
  replace_heavy_libraries: true
  enable_code_splitting: true

错误处理

错误原因解决方案
优化后构建失败代码或配置更改无效撤销该项优化
体积没有缩减优化未生效弃用该项优化
分析器不可用缺少工具继续手动检查

参考资料


运行时摘要产物

必须阅读: 加载 references/coordinator_summary_contract.md

生成 modernization-worker 摘要信封。

托管模式:

  • ln-830 会传递确定性的 runId 和准确的 summaryArtifactPath
  • 将摘要写入提供的 summaryArtifactPath

独立模式:

  • 省略 runId 和 summaryArtifactPath
  • 写入 .hex-skills/runtime-artifacts/runs/{run_id}/modernization-worker/ln-832--{identifier}.json

Monitor(2.1.98+): 对于 keep/discard 循环中预计耗时超过 30 秒的构建命令,请使用 Monitor。备用方案:Bash(run_in_background=true)。

完成标准

  • 根据实际构建输出确定基准打包体积
  • 根据打包内容和项目用法分析优化机会
  • 通过保留/弃用验证评估每项优化
  • 仅保留能缩减体积的优化
  • 最终报告记录打包体积变化、已弃用的尝试和已移除的依赖项
  • 将 modernization-worker 摘要产物写入托管或独立模式指定的路径

版本: 1.0.0 最后更新: 2026-03-08

评论

支持 Markdown