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 倍)