deno.com
本頁面內容

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.jsonpackage.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

您找到需要的資訊了嗎?

隱私權政策