deno 過時檢查
命令列用法
deno outdated [OPTIONS] [filters]...
尋找並更新過時的相依性。預設情況下,只會顯示過時的相依性。
顯示過時的相依性
deno outdated
deno outdated --compatible
將相依性更新至最新的語意版本相容版本
deno outdated --update
將相依性更新至最新版本,忽略語意版本要求
deno outdated --update --latest
篩選器可用於選取要處理的套件。篩選器可以包含萬用字元 (*),以比對多個套件。
deno outdated --update --latest "@std/*"
deno outdated --update --latest "react*"
請注意,篩選器作用於 deno.json / package.json 中設定的別名,而不是實際的套件名稱:給定 deno.json 或 package.json 中的 "foobar": "npm:react@17.0.0",篩選器 "foobar" 會將 npm:react 更新至最新版本。
deno outdated --update --latest foobar
篩選器可以組合使用,並且可以使用負向篩選器來排除結果
deno outdated --update --latest "@std/*" "!@std/fmt*"
可以指定要更新到的特定版本需求
deno outdated --update @std/fmt@^1.0.2
相依性管理選項 跳到標題
--lock
跳到標題
檢查指定的鎖定檔。(如果未提供值,則預設為 "./deno.lock")。
--no-lock
跳到標題
停用自動探索鎖定檔。
選項 跳到標題
--compatible
跳到標題
僅輸出滿足語意版本要求的版本。
--latest
跳到標題
更新至最新版本,無論語意版本約束如何。
--recursive
跳到標題
簡短標記:-r
包含所有工作區成員。
--update
跳到標題
簡短標記:-u
更新相依性版本。
檢查過時的相依性 跳到標題
outdated
子命令會檢查 deno.json
或 package.json
檔案中列出的 NPM 和 JSR 相依性的新版本,並顯示可以更新的相依性。完全支援工作區,包括某些成員使用 package.json
而其他成員使用 deno.json
的工作區。
例如,以具有 deno.json
檔案的專案為例
{
"imports": {
"@std/fmt": "jsr:@std/fmt@^1.0.0",
"@std/async": "jsr:@std/async@1.0.1",
"chalk": "npm:chalk@4"
}
}
和一個鎖定檔,其中 @std/fmt
的版本為 1.0.0
。
$ deno outdated
┌────────────────┬─────────┬────────┬────────┐
│ Package │ Current │ Update │ Latest │
├────────────────┼─────────┼────────┼────────┤
│ jsr:@std/fmt │ 1.0.0 │ 1.0.3 │ 1.0.3 │
├────────────────┼─────────┼────────┼────────┤
│ jsr:@std/async │ 1.0.1 │ 1.0.1 │ 1.0.8 │
├────────────────┼─────────┼────────┼────────┤
│ npm:chalk │ 4.1.2 │ 4.1.2 │ 5.3.0 │
└────────────────┴─────────┴────────┴────────┘
「更新」欄列出最新的語意版本相容版本,而「最新」欄列出最新版本。
請注意,即使沒有語意版本相容版本可以更新,jsr:@std/async
仍然列出。如果您希望僅顯示具有新相容版本的套件,您可以傳遞 --compatible
標記。
$ deno outdated --compatible
┌────────────────┬─────────┬────────┬────────┐
│ Package │ Current │ Update │ Latest │
├────────────────┼─────────┼────────┼────────┤
│ jsr:@std/fmt │ 1.0.0 │ 1.0.3 │ 1.0.3 │
└────────────────┴─────────┴────────┴────────┘
jsr:@std/fmt
仍然列出,因為它可以相容地更新到 1.0.3
,但 jsr:@std/async
不再顯示。
更新相依性 跳到標題
outdated
子命令也可以使用 --update
標記更新相依性。預設情況下,它只會將相依性更新到語意版本相容版本(即,它不會更新到破壞性版本)。
$ deno outdated --update
Updated 1 dependency:
- jsr:@std/fmt 1.0.0 -> 1.0.3
若要更新到最新版本(無論是否與語意版本相容),請傳遞 --latest
標記。
$ deno outdated --update --latest
Updated 3 dependencies:
- jsr:@std/async 1.0.1 -> 1.0.8
- jsr:@std/fmt 1.0.0 -> 1.0.3
- npm:chalk 4.1.2 -> 5.3.0
選取套件 跳到標題
outdated
子命令也支援選取要操作的套件。這適用於帶有或不帶有 `--update` 標記的情況。
$ deno outdated --update --latest chalk
Updated 1 dependency:
- npm:chalk 4.1.2 -> 5.3.0
可以傳遞多個選取器,並且也支援萬用字元 (*
) 或排除 (!
)。
例如,若要更新所有具有 @std
範圍的套件,除了 @std/fmt
之外
$ deno outdated --update --latest "@std/*" "!@std/fmt"
Updated 1 dependency:
- jsr:@std/async 1.0.1 -> 1.0.8
請注意,如果您使用萬用字元,您可能需要將引數括在引號中,以防止 shell 嘗試展開它們。
更新至特定版本 跳到標題
除了選取要更新的套件之外,--update
標記也支援選取新的版本,在 @
之後指定版本。
❯ deno outdated --update chalk@5.2 @std/async@1.0.6
Updated 2 dependencies:
- jsr:@std/async 1.0.1 -> 1.0.6
- npm:chalk 4.1.2 -> 5.2.0
工作區 跳到標題
在工作區設定中,預設情況下 outdated
只會對目前的工作區成員進行操作。
例如,給定一個工作區
{
"workspace": ["./member-a", "./member-b"]
}
執行
deno outdated
從 ./member-a
目錄將只會檢查 ./member-a/deno.json
或 ./member-a/package.json
中列出的過時相依性。
若要包含所有工作區成員,請傳遞 --recursive
標記(也接受 -r
簡寫)
deno outdated --recursive
deno outdated --update --latest -r