用途
Dependency Audit 用于对项目依赖进行审计、更新和漏洞管理,支持 npm、pip 以及其他包管理器(Yarn、pnpm)。当用户需要审计依赖、更新依赖或处理依赖漏洞时使用。
主要能力
npm / Node.js
安全审计:
npm audit
npm audit --json # Machine-readable
npm audit --production # Production deps only
npm audit fix
npm audit fix --force # Allow major version bumps
检查特定安全公告:
npm audit --advisory=1234
检查过期依赖:
npm outdated
输出示例:
Package Current Wanted Latest Location
express 4.17.1 4.17.3 5.0.0 my-app
lodash 4.17.20 4.17.21 4.17.21 my-app
其中 Wanted 表示匹配 package.json 中 semver 范围的最高版本,Latest 表示已发布的最新版本。
更新策略:
npm update
npm update express
npm install express@latest
npx npm-check-updates # List all updates
npx npm-check-updates -u # Update package.json
npm install # Install updated
npx npm-check-updates --target minor # Only minor+patch
npx npm-check-updates --target patch # Only patch
锁文件管理:
rm package-lock.json && npm install
npm ci # Clean install from lock file (CI)
npm dedupe
Python / pip
审计:
pip install pip-audit
pip-audit
pip-audit -r requirements.txt
pip-audit --fix # Auto-fix vulnerabilities
pip-audit --json # Machine-readable
pip install safety
safety check
safety check -r requirements.txt
检查过期依赖:
pip list --outdated
pip list --outdated --format=json
pip show package-name
更新策略:
pip install --upgrade requests
pip list --outdated --format=json | python -c "
import json, sys
for pkg in json.load(sys.stdin):
print(pkg['name'])" | xargs -n1 pip install --upgrade
pip freeze > requirements.txt
pip-tools(推荐):
pip install pip-tools
# requirements.in:
# flask
# sqlalchemy>=2.0
pip-compile requirements.in
pip-compile --upgrade requirements.in
pip-compile --upgrade-package flask requirements.in
pip-sync requirements.txt
Yarn
yarn audit
yarn audit --level moderate # Only moderate+
yarn outdated
yarn upgrade # Within ranges
yarn upgrade --latest # To latest versions
yarn upgrade-interactive # Interactive picker
yarn dedupe
pnpm
pnpm audit
pnpm audit --fix
pnpm outdated
pnpm update
pnpm update --latest
pnpm update --interactive
Renovate / Dependabot
Dependabot(GitHub)配置示例:
# .github/dependabot.yml
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
reviewers:
- "team-name"
labels:
- "dependencies"
groups:
dev-deps:
patterns:
- "*"
dependency-type: "development"
prod-deps:
patterns:
- "*"
dependency-type: "production"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
Renovate 配置示例:
// renovate.json
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"schedule": ["before 6am on Monday"],
"automerge": true,
"automergeType": "pr",
"packageRules": [
{
"matchUpdateTypes": ["patch"],
"automerge": true
},
{
"matchUpdateTypes": ["major"],
"automerge": false,
"labels": ["breaking"]
}
]
}
许可证检查
npx license-checker --summary
npx license-checker --onlyAllow "MIT;ISC;BSD-3-Clause;Apache-2.0"
pip install pip-licenses
pip-licenses --summary
pip-licenses --allow-only "MIT;BSD;Apache-2.0"
使用方式
推荐的更新工作流:
- 检查哪些依赖已过期:
npm outdated/pip list --outdated - 运行审计查找漏洞:
npm audit/pip-audit - 先更新补丁版本(最安全):
npx ncu --target patch -u && npm install - 运行测试:
npm test/pytest - 更新次版本:
npx ncu --target minor -u && npm install && npm test - 逐个更新主版本:
npm install package@latest && npm test,并阅读主版本升级的迁移指南 - 提交并推送:
git add package.json package-lock.json,git commit -m "chore: update dependencies"
关于 CI 集成与自动化,可参考 references/automation.md。
适用场景
- 需要审计项目依赖中的安全漏洞
- 需要检查并更新过期依赖
- 需要管理锁文件、去重依赖
- 需要配置 Dependabot 或 Renovate 实现自动化依赖更新
- 需要检查依赖许可证合规性
限制
资料中未提供关于该技能的具体平台限制、收费方式或效果保证等信息。