智能依赖管理器Skill dependency-updater

智能依赖管理器是一个自动化工具,用于管理软件项目的依赖项。它支持多种编程语言(如Node.js、Python、Go等),自动检测项目类型,安全应用更新(如补丁和次要版本),提示用户处理主要版本更新,并诊断和修复依赖问题。还包括安全审计和冲突解决功能,适用于开发流程中的自动化管理。关键词:依赖管理、自动化更新、多语言支持、安全审计、项目检测、版本控制、DevOps工具、软件维护。

DevOps 0 次安装 0 次浏览 更新于 3/21/2026

名称: 依赖更新器 描述: 智能依赖管理,支持任何语言。自动检测项目类型,自动应用安全更新,提示主要版本更新,诊断和修复依赖问题。 许可证: MIT 元数据: 版本: 1.0.0

依赖更新器

智能依赖管理,支持任何语言,自动检测和安全更新。


快速开始

更新我的依赖

该技能自动检测您的项目类型并处理其余部分。


触发器

触发器 示例
更新依赖 “更新依赖”, “更新依赖”
检查过时 “检查过时的包”
修复依赖问题 “修复我的依赖问题”
安全审计 “审计依赖以查找漏洞”
诊断依赖 “诊断依赖问题”

支持的语言

语言 包文件 更新工具 审计工具
Node.js package.json taze npm audit
Python requirements.txt, pyproject.toml pip-review safety, pip-audit
Go go.mod go get -u govulncheck
Rust Cargo.toml cargo update cargo audit
Ruby Gemfile bundle update bundle audit
Java pom.xml, build.gradle mvn versions:* mvn dependency:*
.NET *.csproj dotnet outdated dotnet list package --vulnerable

快速参考

更新类型 版本更改 操作
固定 ^~ 跳过(故意固定)
补丁 x.y.zx.y.Z 自动应用
次要 x.y.zx.Y.0 自动应用
主要 x.y.zX.0.0 逐个提示用户

工作流程

用户请求
    │
    ▼
┌─────────────────────────────────────────────────────┐
│ 步骤 1: 检测项目类型                                 │
│ • 扫描包文件(package.json, go.mod...)             │
│ • 识别包管理器                                      │
├─────────────────────────────────────────────────────┤
│ 步骤 2: 检查先决条件                                 │
│ • 验证所需工具是否安装                              │
│ • 如果缺失,建议安装                                │
├─────────────────────────────────────────────────────┤
│ 步骤 3: 扫描更新                                     │
│ • 运行语言特定的过时检查                            │
│ • 分类:主要 / 次要 / 补丁 / 固定                   │
├─────────────────────────────────────────────────────┤
│ 步骤 4: 自动应用安全更新                             │
│ • 自动应用次要和补丁更新                            │
│ • 报告更新内容                                      │
├─────────────────────────────────────────────────────┤
│ 步骤 5: 提示主要更新                                 │
│ • 为每个主要更新询问用户问题                        │
│ • 显示当前 → 新版本                                 │
├─────────────────────────────────────────────────────┤
│ 步骤 6: 应用批准的主要更新                           │
│ • 仅更新批准的包                                    │
├─────────────────────────────────────────────────────┤
│ 步骤 7: 最终化                                       │
│ • 运行安装命令                                      │
│ • 运行安全审计                                      │
└─────────────────────────────────────────────────────┘

按语言命令

Node.js (npm/yarn/pnpm)

# 检查先决条件
scripts/check-tool.sh taze "npm install -g taze"

# 扫描更新
taze

# 应用次要/补丁
taze minor --write

# 应用特定主要
taze major --write --include pkg1,pkg2

# 单仓库支持
taze -r  # 递归

# 安全
npm audit
npm audit fix

Python

# 检查过时
pip list --outdated

# 更新所有(谨慎!)
pip-review --auto

# 更新特定
pip install --upgrade 包名

# 安全
pip-audit
safety check

Go

# 检查过时
go list -m -u all

# 更新所有
go get -u ./...

# 整理
go mod tidy

# 安全
govulncheck ./...

Rust

# 检查过时
cargo outdated

# 在语义版本内更新
cargo update

# 安全
cargo audit

Ruby

# 检查过时
bundle outdated

# 更新所有
bundle update

# 更新特定
bundle update --conservative gem名称

# 安全
bundle audit

Java (Maven)

# 检查过时
mvn versions:display-dependency-updates

# 更新到最新
mvn versions:use-latest-releases

# 安全
mvn dependency:tree
mvn dependency-check:check

.NET

# 检查过时
dotnet list package --outdated

# 更新特定
dotnet add package 包名

# 安全
dotnet list package --vulnerable

诊断模式

当依赖损坏时,运行诊断:

常见问题与修复

问题 症状 修复
版本冲突 “无法解析依赖树” 清理安装,使用覆盖/解析
对等依赖 “对等依赖不满足” 安装所需对等版本
安全漏洞 npm audit 显示问题 npm audit fix 或手动更新
未使用依赖 臃肿捆绑 运行 depcheck(Node)或等效工具
重复依赖 多个版本安装 运行 npm dedupe 或等效工具

紧急修复

# Node.js - 核重置
rm -rf node_modules package-lock.json
npm cache clean --force
npm install

# Python - 清理虚拟环境
rm -rf venv
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Go - 重置模块
rm go.sum
go mod tidy

安全审计

为任何项目运行安全检查:

# Node.js
npm audit
npm audit --json | jq '.metadata.vulnerabilities'

# Python
pip-audit
safety check

# Go
govulncheck ./...

# Rust
cargo audit

# Ruby
bundle audit

# .NET
dotnet list package --vulnerable

严重性响应

严重性 操作
关键 立即修复
24小时内修复
中等 1周内修复
下一个版本中修复

反模式

避免 为什么 代替
更新固定版本 故意固定 跳过它们
自动应用主要更新 破坏性变更 提示用户
批量提示主要更新 失去上下文 逐个提示
跳过锁定文件 不可重现构建 始终提交锁定文件
忽略安全警报 漏洞 按严重性处理

验证清单

更新后:

  • [ ] 扫描更新无错误
  • [ ] 次要/补丁自动应用
  • [ ] 主要更新逐个提示
  • [ ] 固定版本未动
  • [ ] 锁定文件更新
  • [ ] 安装命令运行
  • [ ] 安全审计通过(或问题记录)

<details> <summary><strong>深入探讨:项目检测</strong></summary>

该技能通过扫描包文件自动检测项目类型:

找到的文件 语言 包管理器
package.json Node.js npm/yarn/pnpm
requirements.txt Python pip
pyproject.toml Python pip/poetry
Pipfile Python pipenv
go.mod Go go模块
Cargo.toml Rust cargo
Gemfile Ruby bundler
pom.xml Java Maven
build.gradle Java/Kotlin Gradle
*.csproj .NET dotnet

单仓库检测顺序重要:

  1. 先检查当前目录
  2. 然后检查工作区/单仓库模式
  3. 如果适用,提供递归运行选项

</details>

<details> <summary><strong>深入探讨:Node.js 与 taze</strong></summary>

先决条件

# 全局安装 taze(推荐)
npm install -g taze

# 或使用 npx
npx taze

智能更新流程

# 1. 扫描所有更新
taze

# 2. 应用安全更新(次要 + 补丁)
taze minor --write

# 3. 对于每个主要更新,提示用户:
#    "更新 @types/node 从 ^20.0.0 到 ^22.0.0?"
#    如果同意,添加到批准列表

# 4. 应用批准的主要更新
taze major --write --include approved-pkg1,approved-pkg2

# 5. 安装
npm install  # 或 pnpm install / yarn

自动批准列表

一些包经常有主要版本更新但向后兼容:

原因
lucide-react 图标库,主要更新是添加性的
@types/* 类型定义,通常安全

</details>

<details> <summary><strong>深入探讨:版本策略</strong></summary>

语义版本控制

主要.次要.补丁 (例如,2.3.1)

主要:破坏性变更 - 需要代码更改
次要:新功能 - 向后兼容
补丁:错误修复 - 向后兼容

范围指定符

指定符 含义 示例
^1.2.3 次要 + 补丁 OK >=1.2.3 <2.0.0
~1.2.3 仅补丁 >=1.2.3 <1.3.0
1.2.3 精确(固定) 1.2.3
>=1.2.3 至少 任何 >=1.2.3
* 任何 最新(危险)

推荐策略

{
  "依赖": {
    "关键库": "1.2.3",      // 对关键库精确
    "稳定库": "~1.2.3",       // 对稳定库仅补丁
    "现代库": "^1.2.3"        // 对活跃库次要OK
  }
}

</details>

<details> <summary><strong>深入探讨:冲突解决</strong></summary>

Node.js 冲突

诊断:

npm ls 包名      # 查看依赖树
npm explain 包名 # 为什么安装
yarn why 包名    # Yarn 等效

使用覆盖解决:

// package.json
{
  "覆盖": {
    "lodash": "^4.18.0"
  }
}

使用解析(Yarn)解决:

{
  "解析": {
    "lodash": "^4.18.0"
  }
}

Python 冲突

诊断:

pip check
pipdeptree -p 包名

解决:

# 使用虚拟环境
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 或使用约束
pip install -c constraints.txt -r requirements.txt

</details>


脚本参考

脚本 目的
scripts/check-tool.sh 验证工具是否安装
scripts/run-taze.sh 以适当标志运行 taze

相关工具

工具 语言 目的
taze Node.js 智能依赖更新
npm-check-updates Node.js taze 的替代
pip-review Python 交互式 pip 更新
cargo-edit Rust Cargo 依赖管理
bundler-audit Ruby 安全审计