我构建了 PkgWatch 来预测 npm 包被抛弃,以免它破坏你的构建
发布: (2026年1月20日 GMT+8 01:35)
3 min read
原文: Dev.to
Source: Dev.to
Colors 和 faker 在 2022 年 1 月一夜之间导致数千个构建失败。
Event‑stream 被加密窃取恶意软件入侵。
臭名昭著的 left‑pad 事件导致 React 和 Babel 崩溃。
这些并非传统的安全漏洞,而是 维护者问题,npm audit 等工具无法捕获。
我负责多个生产应用的依赖管理,已厌倦以下突如其来的情况:
- 包突然停止维护
- 单维护者项目,所有关键由一人掌控
- 细微的被抛弃迹象,只有事后才显现
介绍 PkgWatch
PkgWatch 是一个依赖健康情报平台,能够在问题发生前进行预测。它通过多种信号分析包,并为每个包分配健康得分(0‑100)和风险等级(LOW、MEDIUM、HIGH、CRITICAL)。
分析的信号
| 组件 | 衡量指标 |
|---|---|
| 维护者健康 | 提交的近期性,真实的公交因子(不仅仅是贡献者数量) |
| 演进 | 发布频率,提交活动模式 |
| 安全 | OpenSSF 评分卡,漏洞历史 |
| 社区 | 贡献者多样性,问题响应时间 |
| 采用度 | 下载量,依赖者,星标数 |
健康评分
每个包将获得:
- 健康得分:0‑100
- 风险等级:LOW、MEDIUM、HIGH、CRITICAL
安装
npm install -g @pkgwatch/cli
基本用法
检查单个包
pkgwatch check lodash
示例输出
lodash (npm)
Health Score: 72/100
Risk Level: MEDIUM
Maintainer Health: 65 (1 active maintainer in last 90 days)
Evolution: 58 (Last release: 8 months ago)
Security: 85 (OpenSSF: 6.2/10)
Community: 78 (142 contributors)
扫描 package.json 中的所有依赖
pkgwatch scan
在高风险包上使 CI 失败
pkgwatch scan --fail-on HIGH
GitHub Action 示例
- uses: Dlaranjo/pkgwatch/action@v1
with:
api-key: ${{ secrets.PKGWATCH_API_KEY }}
fail-on: HIGH
实时演示与定价
- 实时演示 – 无需注册即可尝试(每小时 20 次请求)
- 免费层 – 每月 5,000 次请求,无需信用卡
- 文档 – 完整的 API 参考
路线图
- 支持更多注册表(已支持 PyPI;Cargo/Go 即将支持)
- 历史趋势分析
- Slack/Discord 健康变化通知
反馈
欢迎分享您的想法!您希望追踪哪些信号?
链接
- 网站:
- GitHub:
- npm: