这个 Skill 能做什么,适合哪些场景?
node-modules-inspector 是 Anthony Fu 开发的 CLI 与 MCP 服务器,用于分析当前项目实际安装的 node_modules。它提供三份结构化报告:多版本重复安装的包、按安装体积排序的包、以及按消费者/作者分组的依赖升级机会与 publint 问题。基础分析完全基于本地磁盘,不需要访问 npm registry(仅 maintainers 报告会按配置补充 npm 元数据)。支持 pnpm、npm 和 bun 项目,既可通过 npx 命令行运行,也可作为 MCP stdio 服务器供 AI 代理调用同名三份报告。
- 读取项目实际安装的 node_modules 依赖树(默认遍历深度 8)
- 生成 duplicates 报告:列出安装了多个版本的包,按版本数降序排列
- 生成 sizes 报告:按磁盘占用排序列出包,并按 js/dts/ 等类别细分字节数
- 生成 maintainers 报告:找出旧依赖声明可被更高已安装版本取代的机会,及 publint 错误/警告/建议
- 以
--输出管道安全的 JSON,或通过 MCP 暴露nmi:report-duplicates、nmi:report-sizes、nmi:report-maintainers三个工具 - 首次运行后把 npm 元数据缓存到磁盘,后续运行显著加快
- 前端/Node 开发者在瘦身 monorepo 时,想知道 node_modules 里哪些包占用磁盘最多
- 维护 pnpm 项目的工程师在执行 `pnpm dedupe` 前,先确认哪些包被重复安装了多个版本
- 库作者想检查依赖方是否还在用旧的依赖声明范围,以及迁移进度(migrationRatio)
- 团队想批量发现依赖树中所有 publint 打包规范问题
- 使用 Claude Code 等 MCP 客户端的开发者,希望在一次会话中多次查询依赖结构并复用缓存的依赖树
- CI 中想生成静态分析产物(`build` 子命令输出 SPA 到 dist/__node-modules-inspector/)
- 仅关于 registry 的查询(如某包的最新版本/元数据)——源文档明确建议改用 `fast-npm-meta`
- 单个包的打包体积(bundle-size)分析——应使用打包器专用工具
- 安全漏洞审计——应使用 `npm audit` 或 `osv-scanner`
- 不支持 pnpm/npm/bun 之外的其他包管理器项目
如何安装这个 Skill?
- 未执行验证:所有报告输出形状仅为文档声明,使用前应先在测试项目中实际运行 report -- 核对。
- 技能依赖通过 npx 运行第三方 npm 包,供应链完整性取决于 npm 分发;发布者身份未经 FollowSkills 验证。
- maintainers 报告会抓取 npm 元数据并缓存到用户目录,中国网络环境下可能不可达或变慢;publint 需在配置中显式开启。
- 文档为英文且未声明中文环境适配;在线版本 node-modules.dev 依赖 WebContainer,可能在部分网络不可用。
- Shell / 命令行
- 本地文件系统
- MCP Server
Node.jspnpm/npm/bun lockfile with installed node_modules
无需单独安装,通过 npx 直接运行即可;在支持 skills-npm 的项目中,技能会在 pnpm install 后自动符号链接到代理技能目录。
Claude Code / 任意 MCP 客户端
npx node-modules-inspector mcp命令行直接使用
npx node-modules-inspector report duplicates --如何使用这个 Skill?
安装后,把下面任意一句发给 Agent 即可触发:
- 审计一下我的依赖,找出被重复安装多个版本的包
- node_modules 里哪些包占用磁盘空间最多?列出前 20 名
- 哪些依赖有过期的版本声明,其他使用者大多已经迁移了?
- 列出我的依赖里所有的 publint 问题
技能通过自然语言触发(如"审计依赖""找出重复包")。代理可运行 CLI 报告命令:
npx node-modules-inspector report duplicates --
npx node-modules-inspector report sizes -- --limit 20
npx node-modules-inspector report maintainers -- --sort migration或在 MCP 模式下启动服务器并调用 node-modules-inspector:nmi:report-duplicates 等工具。所有报告共享 --root <dir>、--config <file>、--depth <n>、-- 选项;duplicates 支持 --min-versions;sizes 默认排除 workspace 包(用 --include-workspace 包含);maintainers 支持 --author、--no-publint、--no-latest-only。publint 结果需在 node-modules-inspector.config.ts 中设置 publint: true。多次查询建议用 MCP 模式(依赖树只读一次并缓存);需要 shell 管道时用 CLI --。
这个 Skill 有哪些优点和局限?
- 三份报告共享同一分析管道,CLI 与 MCP 输出完全一致,且 `--` 管道安全(日志走 stderr)
- 基础分析基于本地 node_modules,不需要联网访问 registry
- 支持 pnpm、npm、bun,并理解 pnpm catalog 引用
- 首次运行后缓存 npm 元数据,后续运行更快
- 仅支持 pnpm、npm、bun,对 yarn 等其他包管理器无支持(依赖社区贡献)
- publint 发现需要手动在配置中开启 `publint: true`,否则 maintainers 报告可能为空
- monorepo 全仓分析可能较慢,需用 `--root packages/<name>` 定向加速
- MCP 模式需要客户端支持 stdio MCP 服务器配置
这个 Skill 与同类方案有什么区别?
与相关 Skills 并排比较;分数均按同一 FSRS 标准得出。
| Skill | FS 评分 | Star 数 | 最近更新 | License |
|---|---|---|---|---|
| Node Modules Inspector 依赖审计技能 本页 | 67 · 推荐 | ★ 3k | 1 个月前 | MIT |
| Engram 持久记忆协议 | 68 · 推荐 | ★ 7.2k | 11 天前 | MIT |
| Vexor 语义代码搜索 | 60 · 推荐 | ★ 244 | 23 天前 | MIT |
| Engram 架构护栏 | 50 · 谨慎使用 | ★ 7.2k | 11 天前 | MIT |
| OfficeCLI 技能 | 38 · 不推荐 | ★ 32k | 13 天前 | Apache-2.0 |
源文档提到本项目深受 npmgraph 启发,并明确划分了边界:registry 元数据查询用 fast-npm-meta,安全审计用 npm audit/osv-scanner,单包打包体积分析用打包器工具——本技能专注本地已安装 node_modules 的结构化审计。
FollowSkills 如何评估这个 Skill?
SKILL.md 描述只读分析本地 node_modules,无网络注册表写入、无凭证访问、无删除操作;npm 元数据抓取被 config 门控并明确披露,缓存写入 ~/.node-modules-inspector 也已说明。扣分:依赖经 npx 从 npm 分发且发布者身份未经注册表验证,技能本身未声明确认/回滚机制。
文档内部自洽(CLI/MCP 接口一致、JSON 输出形状明确、stderr 分流保证管道安全),失败模式章节给出三种异常的可解释反馈;仓库含 vitest 测试(bun 依赖列举 fixtures、模块类型快照)与跨平台 CI。扣分:静态审查未执行,report 子命令输出未经复现,测试未直接覆盖 report/mcp 表面。
触发词、非适用边界(明确排除 registry-only、bundle 分析、安全审计)写得非常清晰,支持 pnpm/npm/bun。扣分:文档仅英文,无中文支持声明;未验证中国网络环境下 npx/npm 依赖获取的可达性,maintainers 报告依赖 npm 元数据抓取可能受网络影响。
分层良好:frontmatter 摘要→表格→逐报告细节→MCP→失败模式→Web UI 递进披露;MIT 许可明确、版本 2.4.4、活跃 CI、skill 经 prepack 打包并有清晰更新路径。扣分:无 changelog 证据,部分配置(publint 实验性、config 细节)需读者自行查 jsdoc。
三个报告目标明确、输出 JSON 形状与选项文档完整,相较手工检查 node_modules 有明显边际价值,并给出 dedupe 等后续动作指引。扣分:静态审查无法验证输出可直接使用,效果声明未被执行证据佐证,受静态上限约束。
仓库提供可审计一手材料:MIT 许可、CI 工作流、针对核心管道(依赖列举、模块类型)的提交测试与 fixtures。扣分:测试未覆盖技能关键路径(report CLI/MCP 工具输出),静态审查未能独立复现,多源交叉验证有限,故不超过静态上限。
点击维度查看打分理由
证据充分度:低 — 主要依赖静态检查、作者材料或有限演示;适合发现线索,不适合做高风险决策。
查看完整评分方法 →