name: dependency-analysis description: 分析项目依赖关系,识别过时、冗余或有安全问题的依赖包
依赖分析技能
概述
定期分析项目依赖是维护健康代码库的关键。本技能帮助你识别和处理依赖相关问题。
启用时机: 定期检查或升级依赖时
声明: "我正在使用 dependency-analysis 技能来分析项目依赖"
Node.js 项目
基础检查
# 查看过时的包
npm outdated
# 查看依赖树
npm ls
# 查看某个包被谁依赖
npm ls <package-name>
# 检查安全漏洞
npm audit
分析 package.json
# 查看生产依赖
cat package.json | jq '.dependencies'
# 查看开发依赖
cat package.json | jq '.devDependencies'
# 统计依赖数量
cat package.json | jq '.dependencies | length'
清理无用依赖
# 使用 depcheck 找出未使用的依赖
npx depcheck
# 删除 node_modules 重新安装
rm -rf node_modules package-lock.json
npm install
Python 项目
基础检查
# 列出已安装的包
pip list
# 检查过时的包
pip list --outdated
# 检查安全漏洞
pip-audit
分析 requirements.txt
# 生成依赖树
pipdeptree
# 检查版本冲突
pip check
Go 项目
# 整理依赖
go mod tidy
# 查看依赖图
go mod graph
# 检查更新
go list -m -u all
分析报告格式
生成依赖分析报告时,使用以下格式:
## 依赖分析报告
### 摘要
- 生产依赖: X 个
- 开发依赖: Y 个
- 过时依赖: Z 个
- 安全漏洞: N 个
### 过时依赖
| 包名 | 当前版本 | 最新版本 | 升级建议 |
|------|----------|----------|----------|
| xxx | 1.0.0 | 2.0.0 | Major 升级,需测试 |
### 安全漏洞
| 包名 | 严重程度 | 描述 | 修复版本 |
|------|----------|------|----------|
| xxx | High | ... | 1.2.3 |
### 建议操作
1. ...
2. ...
升级策略
保守策略(推荐用于生产)
- 只升级 patch 版本
- 升级有安全漏洞的包
- 每次只升级少量包
激进策略(用于开发)
- 升级到最新版本
- 运行完整测试套件
- 检查 breaking changes
注意事项
- 升级前先查看 CHANGELOG
- Major 版本升级可能有 breaking changes
- 保持 lock 文件同步
- CI 中加入依赖审计