依赖
v1.0.0多生态系统依赖审计 —— 在 npm、pip、cargo、go 和 composer 中查找过时、易受攻击、未使用及许可证不兼容的包。用作……
0· 0·0 当前·0 累计
下载技能包
最后更新
2026/4/27
运行时依赖
无特殊依赖
版本
latestv1.0.02026/4/27
初始版本:多生态系统依赖审计,用于检测过时、存在漏洞、未使用及许可证不兼容的包
安装命令
点击复制官方npx clawhub@latest install dependency-health-check
镜像加速npx clawhub@latest install dependency-health-check --registry https://cn.longxiaskill.com 镜像可用
技能文档
跨生态审计项目依赖的安全、新鲜度、许可证合规与无用膨胀,生成带风险评估的优先升级方案。
适用场景: “检查依赖”、“我们是最新吗”、“审计包”、“规划升级”、“找未用依赖”。
步骤 1 — 检测生态
``bash
# 自动识别包管理器
ls package.json package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null # Node.js
ls requirements.txt Pipfile pyproject.toml setup.py 2>/dev/null # Python
ls Cargo.toml Cargo.lock 2>/dev/null # Rust
ls go.mod go.sum 2>/dev/null # Go
ls composer.json composer.lock 2>/dev/null # PHP
ls Gemfile Gemfile.lock 2>/dev/null # Ruby
` 步骤 2 — 过时包
Node.js
`bash
npm outdated --json 2>/dev/null | jq 'to_entries[] | {name: .key, current: .value.current, wanted: .value.wanted, latest: .value.latest}'
# 或 yarn outdated --json 2>/dev/null
# 或 pnpm outdated --format json 2>/dev/null
` Python
`bash
pip list --outdated --format json 2>/dev/null | jq '.[] | {name, version, latest_version}'
# 或用 pip-audit
pip-audit --format json 2>/dev/null
` Rust
`bash
cargo outdated -R --format json 2>/dev/null
` Go
`bash
go list -u -m -json all 2>/dev/null | jq 'select(.Update) | {Path, Version, Update: .Update.Version}'
` PHP
`bash
composer outdated --format json 2>/dev/null
` 步骤 3 — 漏洞扫描
`bash
# Node.js
npm audit --json 2>/dev/null | jq '.vulnerabilities | to_entries[] | {name: .key, severity: .value.severity, fixAvailable: .value.fixAvailable}' # Python
pip-audit --format json 2>/dev/null
# 或 safety check --json 2>/dev/null
# Rust
cargo audit --json 2>/dev/null
# Go
govulncheck ./... 2>/dev/null
# 通用(如已装)
trivy fs --format json --scanners vuln . 2>/dev/null | jq '.Results[].Vulnerabilities[]? | {PkgName, Severity, Title}'
`
步骤 4 — 未使用依赖
Node.js
`bash
npx depcheck --json 2>/dev/null | jq '{unused: .dependencies, devUnused: .devDependencies, missing: .missing}'
` Python
`bash
pip install pipreqs 2>/dev/null
pipreqs . --print 2>/dev/null > /tmp/actual-imports.txt
diff <(sort requirements.txt | sed 's/[>=<].//' | tr '[:upper:]' '[:lower:]') \
<(sort /tmp/actual-imports.txt | sed 's/[>=<].//' | tr '[:upper:]' '[:lower:]')
` Rust
`bash
cargo udeps 2>/dev/null # 需 nightly
` 步骤 5 — 许可证审计
`bash
# Node.js
npx license-checker --json 2>/dev/null | jq 'to_entries[] | {pkg: .key, license: .value.licenses}' | head -40 # Python
pip-licenses --format json 2>/dev/null | jq '.[] | {Name, License}'
# 通用
trivy fs --format json --scanners license . 2>/dev/null
`
标记:MIT 项目中的 GPL、SaaS 中的 AGPL、未知/无许可证包、双许可证包。
步骤 6 — 风险评估
对每个过时依赖评估:
- 严重性:严重(已知 CVE)> 高(落后 2 个大版本)> 中(小版本)> 低(补丁)
- 破坏性:查阅 changelog/release notes
- 使用频率:grep import——高频使用风险高
- 测试覆盖:相关区域测试足则升级更安全
输出模板
`markdown
# 依赖健康报告
项目: [name]
扫描时间: [date]
生态: Node.js、Python 等 汇总
- 总依赖:X
- 过时:X(Y 个严重,Z 个大版本落后)
- 漏洞:X(Y 个严重,Z 个高)
- 未使用:X(可安全移除)
- 许可证问题:X
严重(立即修复)
| 包名 | 当前 | 最新 | 问题 | 风险 |
|------|------|------|------|------|
| lodash | 4.17.20 | 4.17.21 | CVE-2021-23337(原型污染) | 高——47 文件使用 | 推荐升级(本冲刺)
| 包名 | 当前 | 最新 | 破坏性变更 | 工作量 |
|------|------|------|------------|--------|
| react | 17.0.2 | 18.3.1 | 是——并发模式、新 root API | 2-4 小时 | 安全快速补丁(仅补丁)
可低风险直接升级:
axios: 1.6.0 → 1.7.2(仅修 bug)dotenv: 16.3.1 → 16.4.5(无破坏性)
未使用(移除)
moment—— 无引用,已用 date-fns 替代@types/express—— 未发现 Express 代码
许可证标记
gpl-package@1.0: GPL-3.0 在 MIT 项目中——需评估兼容性
升级流程
审计后:
先修严重漏洞(npm aud