AgentSkillsCN

Bun bun outdated

检查是否有过时的依赖项

SKILL.md
--- frontmatter
name: Bun bun outdated
description: Check for outdated dependencies

bun outdated

Check for outdated dependencies

Use bun outdated to check for outdated dependencies in your project. This command displays a table of dependencies that have newer versions available.

sh
bun outdated
txt
| 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      |

Version Information

The output table shows three version columns:

  • Current: The version currently installed
  • Update: The latest version that satisfies your package.json version range
  • Latest: The latest version published to the registry

Dependency Filters

bun outdated supports searching for outdated dependencies by package names and glob patterns.

To check if specific dependencies are outdated, pass the package names as positional arguments:

sh
bun outdated eslint-plugin-security eslint-plugin-sonarjs
txt
| Package                        | Current | Update | Latest    |
| ------------------------------ | ------- | ------ | --------- |
| 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     |

You can also pass glob patterns to check for outdated packages:

sh
bun outdated 'eslint*'
txt
| 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      |

For example, to check for outdated @types/* packages:

sh
bun outdated '@types/*'
txt
| Package            | Current | Update | Latest |
| ------------------ | ------- | ------ | ------ |
| @types/bun (dev)   | 1.3.0   | 1.3.3  | 1.3.3 |

Or to exclude all @types/* packages:

sh
bun outdated '!@types/*'
txt
| 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      |

Workspace Filters

Use the --filter flag to check for outdated dependencies in a different workspace package:

sh
bun outdated --filter='@monorepo/types'
txt
| 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  |

You can pass multiple --filter flags to check multiple workspaces:

sh
bun outdated --filter @monorepo/types --filter @monorepo/cli
txt
| 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      |

You can also pass glob patterns to filter by workspace names:

sh
bun outdated --filter='@monorepo/{types,cli}'
txt
| 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      |

Catalog Dependencies

bun outdated supports checking catalog dependencies defined inpackage.json:

sh
bun outdated -r
txt
┌────────────────────┬─────────┬─────────┬─────────┬────────────────────────────────┐
│ 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, @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 Usage

bash
bun outdated <filter>

General Options

<ParamField path="-c, --config" type="string"> Specify path to config file (<code>bunfig.toml</code>) </ParamField> <ParamField path="--cwd" type="string"> Set a specific cwd </ParamField> <ParamField path="-h, --help" type="boolean"> Print this help menu </ParamField> <ParamField path="-F, --filter" type="string"> Display outdated dependencies for each matching workspace </ParamField>

Output & Logging

<ParamField path="--silent" type="boolean"> Don't log anything </ParamField> <ParamField path="--verbose" type="boolean"> Excessively verbose logging </ParamField> <ParamField path="--no-progress" type="boolean"> Disable the progress bar </ParamField> <ParamField path="--no-summary" type="boolean"> Don't print a summary </ParamField>

Dependency Scope & Target

<ParamField path="-p, --production" type="boolean"> Don't install devDependencies </ParamField> <ParamField path="--omit" type="string"> Exclude <code>dev</code>, <code>optional</code>, or <code>peer</code> dependencies from install </ParamField> <ParamField path="-g, --global" type="boolean"> Install globally </ParamField>

Lockfile & Package.json

<ParamField path="-y, --yarn" type="boolean"> Write a <code>yarn.lock</code> file (yarn v1) </ParamField> <ParamField path="--no-save" type="boolean"> Don't update <code>package.json</code> or save a lockfile </ParamField> <ParamField path="--save" type="boolean" default="true"> Save to <code>package.json</code> (true by default) </ParamField> <ParamField path="--frozen-lockfile" type="boolean"> Disallow changes to lockfile </ParamField> <ParamField path="--save-text-lockfile" type="boolean"> Save a text-based lockfile </ParamField> <ParamField path="--lockfile-only" type="boolean"> Generate a lockfile without installing dependencies </ParamField> <ParamField path="--trust" type="boolean"> Add to <code>trustedDependencies</code> in the project's <code>package.json</code> and install the package(s) </ParamField>

Network & Registry

<ParamField path="--ca" type="string"> Provide a Certificate Authority signing certificate </ParamField> <ParamField path="--cafile" type="string"> Same as <code>--ca</code>, but as a file path to the certificate </ParamField> <ParamField path="--registry" type="string"> Use a specific registry by default, overriding <code>.npmrc</code>, <code>bunfig.toml</code> and environment variables </ParamField> <ParamField path="--network-concurrency" type="number" default="48"> Maximum number of concurrent network requests (default 48) </ParamField>

Caching

<ParamField path="--cache-dir" type="string"> Store & load cached data from a specific directory path </ParamField> <ParamField path="--no-cache" type="boolean"> Ignore manifest cache entirely </ParamField>

Execution Behavior

<ParamField path="--dry-run" type="boolean"> Don't install anything </ParamField> <ParamField path="-f, --force" type="boolean"> Always request the latest versions from the registry & reinstall all dependencies </ParamField> <ParamField path="--no-verify" type="boolean"> Skip verifying integrity of newly downloaded packages </ParamField> <ParamField path="--ignore-scripts" type="boolean"> Skip lifecycle scripts in the project's <code>package.json</code> (dependency scripts are never run) </ParamField> <ParamField path="--backend" type="string" default="clonefile"> Platform-specific optimizations for installing dependencies. Possible values: <code>clonefile</code> (default),{" "} <code>hardlink</code>, <code>symlink</code>, <code>copyfile</code> </ParamField> <ParamField path="--concurrent-scripts" type="number" default="5"> Maximum number of concurrent jobs for lifecycle scripts (default 5) </ParamField>