mcpField
D
dependency-doctor

dependency-doctor

github.com/patricio0312rev开发63249 次安装42 周前更新
代码仓库

关于 dependency-doctor

dependency-doctor 是面向开发者的依赖健康检查与升级规划技能。它分析清单中的安全、版本、重复和兼容性问题,并按优先级提出渐进式升级方案。

主要功能

  1. 01扫描常见依赖清单
  2. 02发现过时及有漏洞的包
  3. 03检测重复和体积较大的依赖
  4. 04评估兼容性与破坏性变更风险
  5. 05按严重程度排列问题
  6. 06规划渐进升级与版本约束

适用场景

  1. 01发布前审计项目依赖
  2. 02确定安全及维护更新优先级
  3. 03规划较安全的主版本迁移

安装

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

$npx skills add https://github.com/patricio0312rev/skills --skill dependency-doctor

安装后在 Claude Code 中输入/dependency-doctor确认已加载。

详细介绍

依赖项检查器

全面分析依赖项健康状况并制定升级计划。

核心工作流

  1. 扫描清单文件:分析 package.json、requirements.txt、Cargo.toml、go.mod 等文件。
  2. 检查版本:对照最新稳定版本,识别过时的软件包。
  3. 检测问题:查找重复项、安全漏洞、已弃用的软件包和体积庞大的构建包。
  4. 评估风险:评估破坏性变更和版本兼容性。
  5. 确定优先级:按严重程度排列问题(安全 > 性能 > 维护)。
  6. 生成升级路径:制定安全、渐进式的更新计划。
  7. 建议固定版本:建议版本约束,以避免未来出现问题。

分析类别

安全问题(严重)
  • 依赖项中存在已知的 CVE
  • 未维护的软件包(超过 2 年没有更新)
  • 存在安全公告的软件包
  • 传递依赖项漏洞
过时的软件包(高)
  • 落后多个主版本(存在破坏性变更)
  • 落后多个次版本(包含新功能)
  • 落后多个修订版本(包含错误修复)
重复依赖项(中)
  • 同一软件包存在多个版本
  • 功能重叠(lodash + underscore)
  • 可进行去重
体积庞大的依赖项(中)
  • 构建包体积较大(>500KB)
  • 不必要的对等依赖项
  • 存在更好的替代方案
高风险组合(中)
  • 已知不兼容的版本组合
  • 冲突的对等依赖项
  • 框架版本不匹配

报告结构

# Dependency Audit Report

## 🔴 Critical Security Issues (2)

- [email protected] → CVE-2021-3749 → Upgrade to 1.6.0+
- [email protected] → Prototype pollution → Upgrade to 4.17.21+

## 🟡 High Priority Updates (5)

- [email protected] → 18.2.0 (major, breaking changes)
- [email protected] → 14.1.0 (major, new features)

## 🟢 Maintenance Updates (8)

- [email protected] → 5.3.3 (patch improvements)

## 📦 Duplicates Found (3)

- moment: 2.29.1, 2.30.0 → Deduplicate to 2.30.0
- @types/node: 18.0.0, 20.0.0 → Align to 20.0.0

## 🏋️ Heavy Dependencies (2)

- moment (232KB) → Consider date-fns (12KB)
- lodash (full) → Consider lodash-es or specific imports

## Upgrade Path

### Phase 1: Security (Do First)

```bash
npm update axios lodash
npm audit fix
```
阶段 2:主要框架(充分测试)
npm install react@18 react-dom@18
npm install next@14
# Run full test suite
阶段 3:次要更新(低风险)
npm update

安全的版本固定建议

{
  "axios": "^1.6.0",
  "react": "^18.2.0",
  "typescript": "~5.3.0"
}

## Package Manager Commands

### npm
- Audit: `npm audit`
- Outdated: `npm outdated`
- Dedupe: `npm dedupe`
- Update: `npm update [package]`

### yarn
- Audit: `yarn audit`
- Outdated: `yarn outdated`
- Dedupe: `yarn dedupe`
- Upgrade: `yarn upgrade [package]`

### pnpm
- Audit: `pnpm audit`
- Outdated: `pnpm outdated`
- Dedupe: `pnpm dedupe`
- Update: `pnpm update [package]`

### pip
- Outdated: `pip list --outdated`
- Update: `pip install --upgrade [package]`
- Security: `pip-audit` or `safety check`

## Upgrade Best Practices

1. **Backup first**: Commit current state or create branch
2. **Read changelogs**: Check for breaking changes
3. **Update incrementally**: One major version at a time
4. **Test thoroughly**: Run full test suite after each update
5. **Check peer deps**: Ensure compatibility
6. **Lock files**: Commit updated lock files
7. **Monitor**: Watch for runtime issues after deployment

## Version Pinning Strategy

- **Exact**: `1.2.3` - Only for problematic packages
- **Patch**: `~1.2.3` - Safe updates (1.2.x)
- **Minor**: `^1.2.3` - Most common (1.x.x)
- **Range**: `>=1.2.3 <2.0.0` - Explicit bounds

## References

See `references/common-issues.md` for known problematic package combinations and migration guides.

评论

支持 Markdown