> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# Taze 依赖更新

## 简介

**Taze** 是一个用于检测项目依赖更新的命令行工具，支持多种版本检查模式，可以在不修改 `package.json` 的前提下列出所有可更新的依赖，也可以交互式选择后批量写入。

相较于 `npm outdated`，**Taze** 的优势在于支持按语义化版本区间（major / minor / patch）筛选、交互式勾选、递归检测 monorepo 子包，并且可以规避「刚发布的不稳定版本」——通过 `--maturity-period` 设定等待天数。

## 安装

```bash title="安装"
# 全局安装
npm install -g taze

# 或使用 npx 直接运行（无需安装）
npx taze
```

## 检查模式

| 命令            | 说明              |
| ------------- | --------------- |
| `taze`        | 默认模式，检查版本范围内的更新 |
| `taze major`  | 检查主版本更新         |
| `taze minor`  | 检查次版本更新         |
| `taze patch`  | 检查补丁版本更新        |
| `taze latest` | 检查最新版本          |
| `taze newest` | 检查最新稳定版本        |
| `taze next`   | 检查下一个版本（含预发布版本） |

## 常用选项

| 选项                          | 说明                                                  |
| --------------------------- | --------------------------------------------------- |
| `-w, --write`               | 将更新写入 `package.json`                                |
| `-i, --install`             | 更新版本号后直接安装                                          |
| `-u, --update`              | 更新版本号后直接升级                                          |
| `-I, --interactive`         | 交互式模式，可选择性更新                                        |
| `-a, --all`                 | 显示所有包的最新信息                                          |
| `-f, --force`               | 强制从服务器获取，绕过缓存                                       |
| `-r, --recursive`           | 递归搜索子目录的 `package.json`                             |
| `-g, --global`              | 更新全局包                                               |
| `-l, --include-locked`      | 包含锁定的依赖                                             |
| `--peer`                    | 包含 `peerDependencies`                               |
| `--timediff`                | 显示版本之间的时间差                                          |
| `--nodecompat`              | 显示与当前 Node 版本的兼容性                                   |
| `--maturity-period [days]`  | 等待新包发布的天数，默认 `7`                                    |
| `--sort <type>`             | 排序方式，见下方说明                                          |
| `--group`                   | 按来源分组显示依赖                                           |
| `--include <deps>`          | 只检查指定的依赖                                            |
| `--exclude <deps>`          | 排除指定的依赖                                             |
| `--cwd <path>`              | 指定工作目录                                              |
| `--loglevel <level>`        | 日志级别：`debug` / `info` / `warn` / `error` / `silent` |
| `--fail-on-outdated`        | 发现过期依赖时以退出码 `1` 退出                                  |
| `--ignore-paths <paths>`    | 忽略搜索 `package.json` 的路径                             |
| `--ignore-other-workspaces` | 忽略其他工作区的 `package.json`                             |
| `--concurrency <requests>`  | 解析依赖时的并发请求数，默认 `10`                                 |

`--sort` 可选值：`time-asc` / `time-desc` / `diff-asc` / `diff-desc` / `name-asc` / `name-desc`。

## 使用示例

### 基础检测

```bash title="基础检测"
# 默认检测
taze

# 检查主版本更新
taze major

# 检查次版本更新
taze minor

# 检查最新版本
taze latest
```

### 交互式更新

```bash title="交互式更新"
# 交互式选择更新（推荐）
taze -I
```

### 自动更新

```bash title="自动更新"
# 检测并写入 package.json
taze -w

# 检测后直接安装
taze -i

# 检测后直接升级
taze -u
```

### 高级用法

```bash title="高级用法"
# 显示所有包的详细信息
taze -a

# 强制刷新缓存后检测
taze -f

# 递归检测子目录（monorepo）
taze -r

# 更新全局包
taze -g

# 显示版本时间差
taze --timediff

# 检查 Node 版本兼容性
taze --nodecompat

# 包含锁定的依赖
taze -l

# 包含 peerDependencies
taze --peer

# 等待新包发布 7 天后再升级
taze --maturity-period 7

# 按名称排序
taze --sort name-asc

# 只检查特定依赖
taze --include react,vue

# 排除特定依赖
taze --exclude typescript

# 发现过期依赖时返回错误码（适用于 CI）
taze --fail-on-outdated
```

## 注意事项

1. 更新前建议先提交当前代码，便于出现问题时回滚。
2. 主版本更新可能包含破坏性变更，需谨慎处理，可先用 `taze major` 单独查看影响范围。
3. 优先使用 `-I` 交互式模式选择性更新，比全量 `-w` 更安全。
4. 在 CI/CD 中可使用 `--fail-on-outdated` 检测依赖是否过期，作为流水线卡点。
5. 使用 `--maturity-period` 可避免立即升级到刚发布的版本，降低踩坑风险。

## 相关链接

- [Taze GitHub 仓库](https://github.com/antfu-collective/taze)
