Dependency Scanner 是一个用于检查项目依赖状态的命令行工具,重点扫描 package.json 中过时的依赖包,并检查安全漏洞与版本兼容性。
用途
该工具用于项目依赖的日常维护与审计,帮助识别需要更新的依赖,并提供安全层面的检查结果。适合在依赖维护、安全审计、更新规划、发布前检查以及 CI/CD 安全扫描等场景中使用。
主要能力
- 扫描项目依赖,找出过时的包。
- 检查安全漏洞与版本兼容性。
- 按需过滤结果,只显示过时依赖或只显示安全问题。
- 支持检查指定的单个包。
- 输出结构化的扫描报告。
使用方式
先安装依赖:
cd {baseDir}
npm install
扫描当前项目:
{baseDir}/depscan.js
扫描指定目录:
{baseDir}/depscan.js /path/to/project
仅显示过时依赖:
{baseDir}/depscan.js --outdated
仅显示安全问题:
{baseDir}/depscan.js --security
检查特定包:
{baseDir}/depscan.js --package express
输出示例
报告会显示项目名称、包管理器、找到的依赖文件(如 package.json、package-lock.json),并分别列出 dependencies 与 devDependencies 的版本状态,标记当前版本、可用更新类型(patch / minor / major),最后给出汇总,包括已是最新、补丁更新、次要更新、主要更新与安全问题数量。例如:
DEPENDENCY SCAN REPORT
Project: my-project
Package Manager: npm
Files Found: 2 (package.json, package-lock.json)
DEPENDENCIES (12 total)
✓ lodash 4.17.21 (current)
✓ express 4.18.2 (current)
! axios 0.21.4 → 1.6.2 (major update)
~ axios-retry 3.8.0 → 3.9.0 (patch available)
DEV DEPENDENCIES (8 total)
✓ eslint 8.55.0 (current)
! jest 27.5.1 → 29.7.0 (major update)
SUMMARY
Up to date: 8
Patch updates: 2
Minor updates: 1
Major updates: 2
Security issues: 0
适用场景
- 依赖维护:定期检查并规划依赖升级。
- 安全审计:查看依赖中的安全问题。
- 更新规划:区分补丁、次要和主要版本更新。
- 发布前检查:在发布前确认依赖状态。
- CI/CD 安全扫描:作为持续集成流程中的安全检查环节。
限制
资料中未提供该工具支持的其他包管理器、具体安全漏洞检测机制、版本兼容性判断规则、运行环境要求及许可证等信息,暂未提供。