FMATheNomad/depcheckai
GitHub: FMATheNomad/depcheckai
一款跨 npm、PyPI、crates.io 三大生态的依赖健康审计 CLI 工具,能检测废弃包、评估健康评分并给出替代方案建议。
Stars: 0 | Forks: 0
# 🔍 depcheckai
### *"别再发布有缺陷的依赖了。只需一条命令,就能告诉你哪些已被废弃、存在风险或需要替换。"*
[](https://github.com/FMATheNomad/depcheckai/pkgs/npm/depcheckai)
[](https://github.com/FMATheNomad/depcheckai/releases)
[](https://github.com/FMATheNomad/depcheckai/stargazers)
[](https://opensource.org/licenses/MIT)
[](https://github.com/FMATheNomad/depcheckai/actions)
[](https://github.com/sponsors/FMATheNomad)
[](https://github.com/FMATheNomad/depcheckai/pkgs/npm/depcheckai)
[](https://www.typescriptlang.org/)
## 🚨 问题所在
你的项目依赖了 50 多个包。但你完全不知道其中有哪些是:
- 🔴 **已废弃** — 仍在生产环境中运行,但维护者已经表示“请不要再使用这个了”
- 🟡 **已弃维** — 两年多没有提交,未解决的问题越堆越多
- ⚠️ **高风险** — 落后一个大版本,即将出现破坏性更新,或存在安全隐患
- ✅ **状况良好** — 实际上没问题(但你却在浪费时间手动检查它们)
**你该怎么办?**
| 方法 | 耗时 | 遗漏问题 | 提供替代方案 |
|----------|-----------|---------------|-------------------|
| 🙋 手动 — 在 npm/GitHub 上逐个检查包 | 每个项目 20-40 分钟 | ✅ 很多 | ❌ |
| 🔧 npm audit — 仅检查 CVE | 瞬间完成 | ❌ 无法检测废弃状态、健康状况和流行度 | ❌ |
| 🤖 Dependabot — 自动 PR | 自动化 | ❌ 无法进行健康分析 | ❌ |
| 🔍 **depcheckai** | **< 3 秒** | **✅ 全面覆盖** | **✅ AI 驱动的建议** |
**结论:** 现有工具只能告诉你安全问题是*什么*。**而 depcheckai 会告诉你对该怎么做** —— 替换、更新还是忽略 —— 并提供具体的替代方案。
## 🎯 depcheckai 的功能
```
# 扫描你的整个项目 — 自动检测 package.json、requirements.txt、Cargo.toml
depcheckai
# 从你的终端检查任何 package
depcheckai check lodash
depcheckai check request
depcheckai check react@18.2.0
# 带有建议的全面健康审计
depcheckai audit
# 查看所有 deps 的更新建议
depcheckai update
# 获取用于 CI/CD 的 JSON
depcheckai --json
```
### 实际输出
```
$ depcheckai
✔ Scanned package.json — 10 dependencies found
depcheckai — Dependency Health Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Package Ver Health Score Action
─────────────────────────────────────────────────────────────
express 4.18.2 good 92 ✓ ok
lodash 4.17.21 good 88 ✓ ok
moment 2.29.4 risky 34 🔴 REPLACE → dayjs
request-deprecated 2.88.2 critical 8 🔴 REPLACE → axios
─────────────────────────────────────────────────────────────
4 dependencies | 1 critical | 1 risky | 2 good
```
## 📊 为什么选择 depcheckai?(对比其他方案)
| 功能 | 手动检查 | npm audit | Dependabot | Safety CLI | **depcheckai** |
|---------|-------------|-----------|------------|------------|-----------------|
| 🔍 CVE 检测 | ❌ | ✅ | ✅ | ✅ | ✅ |
| 📦 废弃检测 | ❌ (手动检查) | ❌ | ❌ | ❌ | ✅ |
| 🏥 健康评分(维护状态 + 流行度) | ❌ | ❌ | ❌ | ❌ | ✅ |
| 🔄 破坏性更新检测 | ❌ | ❌ | ❌ | ❌ | ✅ |
| 💡 可操作的替代方案 | ❌ | ❌ | ❌ | ❌ | ✅ |
| 🐍 Python (PyPI) 支持 | ❌ | ❌ | ❌ | ✅ | ✅ |
| 🦀 Rust (crates.io) 支持 | ❌ | ❌ | ❌ | ❌ | ✅ |
| 📊 多种输出格式 | ❌ | ❌ | ❌ | ❌ | ✅ (表格、JSON、Markdown) |
| 🤖 GitHub Action | ❌ | ❌ | ✅ | ❌ | ✅ |
| 💵 价格 | ⏱ 你的时间 | 免费 | 免费(公开仓库) | 免费 | **免费且开源** |
| 📜 License | — | MIT | 专有协议 | MIT | **MIT** |
**结论:** 其他所有工具只能解决拼图中的*某一块*。**depcheckai 是第一个能为你提供跨生态系统完整健康全貌,并明确告诉你该怎么做的工具。**
## ⚡ 快速开始
```
# 全局安装
npm install -g @fmathenomad/depcheckai
# 或立即运行
npx @fmathenomad/depcheckai
# 扫描你的项目
cd your-project
depcheckai
# 检查特定 package 及其替代方案
depcheckai check request
# 用于 CI/CD pipelines 的 JSON 输出
depcheckai --json
```
### 支持的生态系统
| 生态系统 | Manifest | Registry |
|-----------|----------|----------|
| 📦 npm | `package.json` | registry.npmjs.org |
| 🐍 PyPI | `requirements.txt` | pypi.org |
| 🦀 crates.io | `Cargo.toml` | crates.io |
## 🔧 功能特性
| 功能 | 描述 |
|---------|-------------|
| 🔍 **多生态系统扫描** | 自动检测 npm、PyPI 和 crates.io 的 manifest 文件 |
| 🏥 **健康评分** | 加权 0-100 评分:维护状态 (35%)、流行度 (25%)、兼容性 (20%)、安全性 (20%) |
| 💡 **智能建议** | 不仅仅是告诉你“它有问题”——还会推荐具体的替代方案(例如,“用 dayjs 替换 moment”) |
| 📊 **多种输出格式** | 终端表格、JSON (用于 CI/CD)、Markdown (用于 GitHub issues/PRs) |
| 🚦 **适配 CI/CD** | `--fail-on` 标志 + exit code,方便集成到 pipeline 中 |
| 🚀 **GitHub Action** | 开箱即用的 action,用于 PR 评论和构建失败拦截 |
| 💾 **智能缓存** | 1 小时 API 响应缓存,激进处理 GitHub rate-limit |
| ⚙️ **可配置** | 通过 `.depcheckai.json` 为团队和制定组织级策略 |
## 🔄 CI/CD 集成
### GitHub Action
```
- name: Dependency Health Check
uses: FMATheNomad/depcheckai@v1
with:
manifest-path: '.'
format: 'markdown'
fail-on: 'medium'
```
### JSON 输出(适用于任何 CI)
```
depcheckai --json --fail-on medium
echo $? # 0 = pass, 1 = fail
```
### Pre-commit Hook
```
#!/bin/sh
depcheckai --json --fail-on low || exit 1
```
将其保存为 `.git/hooks/pre-commit` 并运行 `chmod +x`。
## 🗺 路线图
- [x] npm 生态系统支持
- [x] PyPI 生态系统支持
- [x] crates.io 生态系统支持
- [x] 健康评分(维护状态、流行度、兼容性、安全性)
- [x] 包含替代方案的推荐引擎
- [x] 表格、JSON、Markdown 输出
- [x] GitHub Action
- [x] 配置文件 (.depcheckai.json)
- [ ] **交互式更新模式** (`--interactive`) — v0.2
- [ ] **Pre-commit hook 集成** — v0.2
- [ ] **VS Code 扩展** — v0.3
- [ ] **AI 驱动的 changelog 摘要** — v0.4
## 🧑💻 开发说明
```
git clone https://github.com/FMATheNomad/depcheckai.git
cd depcheckai
npm install
npm run build
npm test
# 本地测试 CLI
node dist/index.js --version
node dist/index.js check lodash
```
## 📜 License
MIT © [FMA Software Labs](https://fmasoftwarelabs.up.railway.app)
标签:LNA, MITM代理, SOC Prime, TypeScript, WebSocket, 依赖分析, 依赖管理, 安全插件, 开发工具, 暗色界面, 自动化攻击