bun 过期依赖
检查过期的依赖
bun outdated 会显示项目中有较新版本可用的依赖项列表。
bun outdated
| Package | Current | Update | Latest |
| ------------------------------ | ------- | --------- | ---------- |
| @sinclair/typebox | 0.34.15 | 0.34.16 | 0.34.16 |
| @types/bun (dev) | 1.3.0 | 1.3.3 | 1.3.3 |
| eslint (dev) | 8.57.1 | 8.57.1 | 9.20.0 |
| eslint-plugin-security (dev) | 2.1.1 | 2.1.1 | 3.0.1 |
| eslint-plugin-sonarjs (dev) | 0.23.0 | 0.23.0 | 3.0.1 |
| expect-type (dev) | 0.16.0 | 0.16.0 | 1.1.0 |
| prettier (dev) | 3.4.2 | 3.5.0 | 3.5.0 |
| tsup (dev) | 8.3.5 | 8.3.6 | 8.3.6 |
| typescript (dev) | 5.7.2 | 5.7.3 | 5.7.3 |
版本信息
输出的表格显示了三列版本信息:
- Current(当前):当前安装的版本
- Update(更新):满足你的 package.json 版本范围的最新版本
- Latest(最新):注册表中发布的最新版本
依赖过滤
要检查特定的依赖项,请将其名称作为位置参数传入:
bun outdated eslint-plugin-security
| Package | Current | Update | Latest |
| ------------------------------ | ------- | ------ | --------- |
| eslint-plugin-security (dev) | 2.1.1 | 2.1.1 | 3.0.1 |
Glob 模式同样适用:
bun outdated 'eslint*'
| Package | Current | Update | Latest |
| ------------------------------ | ------- | ------ | ---------- |
| eslint (dev) | 8.57.1 | 8.57.1 | 9.20.0 |
| eslint-plugin-security (dev) | 2.1.1 | 2.1.1 | 3.0.1 |
| eslint-plugin-sonarjs (dev) | 0.23.0 | 0.23.0 | 3.0.1 |
例如,要检查过期的 @types/* 包:
bun outdated '@types/*'
| Package | Current | Update | Latest |
| ------------------ | ------- | ------ | ------ |
| @types/bun (dev) | 1.3.0 | 1.3.3 | 1.3.3 |
或者排除所有 @types/* 包:
bun outdated '!@types/*'
| Package | Current | Update | Latest |
| ------------------------------ | ------- | --------- | ---------- |
| @sinclair/typebox | 0.34.15 | 0.34.16 | 0.34.16 |
| eslint (dev) | 8.57.1 | 8.57.1 | 9.20.0 |
| eslint-plugin-security (dev) | 2.1.1 | 2.1.1 | 3.0.1 |
| eslint-plugin-sonarjs (dev) | 0.23.0 | 0.23.0 | 3.0.1 |
| expect-type (dev) | 0.16.0 | 0.16.0 | 1.1.0 |
| prettier (dev) | 3.4.2 | 3.5.0 | 3.5.0 |
| tsup (dev) | 8.3.5 | 8.3.6 | 8.3.6 |
| typescript (dev) | 5.7.2 | 5.7.3 | 5.7.3 |
工作区过滤
使用 --filter 参数可以检查其它工作区包的过期依赖:
bun outdated --filter='@monorepo/types'
| Package | Current | Update | Latest |
| ------------------ | ------- | ------ | ------ |
| tsup (dev) | 8.3.5 | 8.3.6 | 8.3.6 |
| typescript (dev) | 5.7.2 | 5.7.3 | 5.7.3 |
--filter 接受 Glob 模式,可匹配多个工作区:
bun outdated --filter='@monorepo/{types,cli}'
| Package | Current | Update | Latest |
| ------------------------------ | ------- | ------ | ---------- |
| eslint (dev) | 8.57.1 | 8.57.1 | 9.20.0 |
| eslint-plugin-security (dev) | 2.1.1 | 2.1.1 | 3.0.1 |
| eslint-plugin-sonarjs (dev) | 0.23.0 | 0.23.0 | 3.0.1 |
| expect-type (dev) | 0.16.0 | 0.16.0 | 1.1.0 |
| tsup (dev) | 8.3.5 | 8.3.6 | 8.3.6 |
| typescript (dev) | 5.7.2 | 5.7.3 | 5.7.3 |
目录依赖
bun outdated 还会检查 package.json 中定义的目录依赖:
bun outdated -r
┌────────────────────┬─────────┬─────────┬─────────┬────────────────────────────────┐
│ Package │ Current │ Update │ Latest │ Workspace │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ body-parser │ 1.19.0 │ 1.19.0 │ 2.2.0 │ @test/shared │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ cors │ 2.8.0 │ 2.8.0 │ 2.8.5 │ @test/shared │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ chalk │ 4.0.0 │ 4.0.0 │ 5.6.2 │ @test/utils │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ uuid │ 8.0.0 │ 8.0.0 │ 13.0.0 │ @test/utils │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ axios │ 0.21.0 │ 0.21.0 │ 1.12.2 │ catalog (@test/app) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ lodash │ 4.17.15 │ 4.17.15 │ 4.17.21 │ catalog (@test/app) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ react │ 17.0.0 │ 17.0.0 │ 19.1.1 │ catalog (@test/app) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ react-dom │ 17.0.0 │ 17.0.0 │ 19.1.1 │ catalog (@test/app) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ express │ 4.17.0 │ 4.17.0 │ 5.1.0 │ catalog (@test/shared) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ moment │ 2.24.0 │ 2.24.0 │ 2.30.1 │ catalog (@test/utils) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ @types/node (dev) │ 14.0.0 │ 14.0.0 │ 24.5.2 │ @test/shared │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ @types/react (dev) │ 17.0.0 │ 17.0.0 │ 19.1.15 │ catalog:testing (@test/app) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ eslint (dev) │ 7.0.0 │ 7.0.0 │ 9.36.0 │ catalog:testing (@test/app) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ typescript (dev) │ 4.9.5 │ 4.9.5 │ 5.9.2 │ catalog:build (@test/app) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ jest (dev) │ 26.0.0 │ 26.0.0 │ 30.2.0 │ catalog:testing (@test/shared) │
├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
│ prettier (dev) │ 2.0.0 │ 2.0.0 │ 3.6.2 │ catalog:build (@test/utils) │
└────────────────────┴─────────┴─────────┴─────────┴────────────────────────────────┘
CLI 使用方法
bun outdated <filter>
通用选项
-c, --configstring指定配置文件路径(bunfig.toml)
--cwdstring设置特定的当前工作目录
-h, --helpboolean打印帮助菜单
-F, --filterstring显示匹配工作区的过期依赖项
-r, --recursiveboolean检查所有工作区中的过期软件包
输出与日志
--silentboolean不输出任何日志
--verboseboolean详细输出日志
--no-progressboolean禁用进度条
--no-summaryboolean不打印摘要
依赖范围与目标
-p, --productionboolean不安装 devDependencies
--omitstring排除 dev、optional 或 peer 依赖安装
-g, --globalboolean全局安装
锁文件与 package.json
-y, --yarnboolean写入 yarn.lock 文件(yarn v1)
--no-saveboolean不更新 package.json 或保存锁文件
--savebooleandefault true保存至 package.json(默认 true)
--frozen-lockfileboolean禁止修改锁文件
--save-text-lockfileboolean保存基于文本的锁文件
--lockfile-onlyboolean仅生成锁文件,不安装依赖
--trustboolean添加至项目的 package.json 中的 trustedDependencies 并安装包
网络与注册表
--castring提供证书颁发机构签名证书
--cafilestring同 --ca,但为证书文件路径
--registrystring默认使用特定注册表,覆盖 .npmrc、bunfig.toml 和环境变量
--network-concurrencynumberdefault 48最大并发网络请求数(默认 48)
缓存
--cache-dirstring从特定目录路径存储和加载缓存数据
--no-cacheboolean完全忽略清单缓存
执行行为
--dry-runboolean无效。bun outdated 为只读操作
-f, --forceboolean始终从注册表请求最新版本并重新安装所有依赖
--no-verifyboolean跳过校验新下载包的完整性
--ignore-scriptsboolean跳过所有软件包的生命周期脚本,包括项目的 package.json 和受信任的依赖项
--backendstring用于安装依赖项的平台专属优化。可能的值:clonefile(macOS 上的默认值)、hardlink(Linux 和 Windows 上的默认值)、symlink、copyfile
--concurrent-scriptsnumber生命周期脚本的最大并发任务数(默认:CPU 核心数的 2 倍)