SuperAPI AI 工具集

pnpm-dependency-analysis

通用与其它

查看项目

更新于 10-15 21:38

技能介绍

用途:在 pnpm monorepo 中分析包的引用情况、解析版本、直接与传递依赖、工作区之间的相互依赖,以及升级或打补丁时的影响范围(blast radius)。所有命令均在仓库根目录执行,将 PACKAGE 替换为真实包名。

主要能力:用 pnpm why PACKAGE --recursive --depth=0 查看直接引用该包的工作区;用 pnpm why PACKAGE --recursive --long 查看传递依赖路径;结合 --json 与 jq 输出各工作区解析到的版本、依赖类型和来源,便于发现版本不一致或冲突。还可生成工作区之间的依赖图,并输出可粘贴到 GitHub PR 或 mermaid.live 的 Mermaid 边。

使用方式:核心命令为 pnpm why PACKAGE --recursive --depth=0 与 pnpm why PACKAGE --recursive --long;版本查询示例:pnpm why PACKAGE --recursive --json | jq -r '.[] | "(.workspace)\t→ (.version)\t(.dependencyType // "unknown")\t(.from // "-")"'。工作区依赖图可用 pnpm recursive list --depth=0 --json --only-projects 配合 jq 生成。可用 --filter 缩小范围,如 --filter="./packages/"、--filter="./apps/" 或 --filter="@equinor/fusion-framework-react"。资料还提供了一段组合式排查脚本,用于汇总直接引用、解析版本、package.json 提及以及 eslint、vite、vitest、playwright、storybook、tsconfig、next.config 等配置文件的提及。

适用场景:评估 Dependabot 升级 PR 的影响、判断共享工具包能否安全升级、排查来源不明的传递依赖,以及梳理工作区之间的依赖结构。

限制与前提:需要 jq 解析 JSON(推荐),文件搜索使用 grep、find;可选安装 ripgrep 加速搜索,可选 pnpm-workspace-graph 查看交互式工作区图。风险等级参考表(如 1–2 个工作区为低风险、6–8 个以上为高风险、仅出现在 devDependencies 风险较低、使用 workspace:* 风险很低、解析出多个版本为中风险、作为枢纽节点为高风险等)属于经验性参考,并非绝对结论。资料未提供该技能的安装方式、收费信息或平台支持范围。