npm-outdated

檢查過時的套件

選擇 CLI 版本

概要

npm outdated [<package-spec> ...]

說明

此指令將檢查登錄檔,以查看是否有任何 (或特定) 已安裝的套件目前已過時。

預設情況下,只會顯示根專案的直接依賴項和已設定 工作區 的直接依賴項。使用 --all 也能找出所有過時的元依賴項。

在輸出中

  • wanted 是滿足 package.json 中指定的 semver 範圍的最大套件版本。如果沒有可用的 semver 範圍 (即您正在執行 npm outdated --global,或套件未包含在 package.json) 中,則 wanted 會顯示目前已安裝的版本。
  • latest 是登錄檔中標記為最新的套件版本。執行 npm publish 而沒有特殊設定,將會使用 latest 的 dist 標籤來發布套件。這可能是套件的最大版本,也可能是套件最近發布的版本,具體取決於套件開發人員如何管理最新的 dist 標籤
  • 位置是套件在實體樹中的位置。
  • 依賴的顯示哪些套件依賴於顯示的依賴項
  • 套件類型(使用 --long / -l 時)會告訴您此套件是 依賴項還是開發/同儕/選用依賴項。未包含在 package.json 中的套件總是標記為 依賴項
  • 首頁(使用 --long / -l 時)是套件的 packument 中包含的 首頁
  • 紅色表示有符合您 semver 需求的較新版本,因此您現在應該更新。
  • 黃色表示有高於您 semver 需求的較新版本(通常是新的主要版本或新的 0.x 次要版本),因此請小心進行。

範例

$ npm outdated
Package Current Wanted Latest Location Depended by
glob 5.0.15 5.0.15 6.0.1 node_modules/glob dependent-package-name
nothingness 0.0.3 git git node_modules/nothingness dependent-package-name
npm 3.5.1 3.5.2 3.5.1 node_modules/npm dependent-package-name
local-dev 0.0.3 linked linked local-dev dependent-package-name
once 1.3.2 1.3.3 1.3.3 node_modules/once dependent-package-name

使用這些 依賴項

{
"glob": "^5.0.15",
"nothingness": "github:othiym23/nothingness#master",
"npm": "^3.5.1",
"once": "^1.3.1"
}

一些注意事項

  • glob 需要 ^5,這會阻止 npm 安裝 glob@6,因為它不在 semver 範圍內。
  • Git 依賴項將永遠重新安裝,因為它們的指定方式。已安裝的 committish 可能滿足依賴項說明符(如果它是不可變的,例如 commit SHA),也可能不滿足,因此 npm outdatednpm update 必須擷取 Git 儲存庫來檢查。這就是為什麼目前重新安裝 Git 依賴項總是會強制執行新的複製和安裝。
  • npm@3.5.2 標記為「想要的」,但「最新」是 npm@3.5.1,因為 npm 使用 dist 標籤來管理其 最新下一個發布頻道。npm update 將安裝最新版本,但 npm install npm(沒有 semver 範圍)將安裝標記為 最新的任何內容。
  • once 已經過時了。重新安裝 node_modules 或執行 npm update 將會更新到最新版本。

設定

all

  • 預設值:false
  • 類型:布林值

在執行 npm outdatednpm ls 時,設定 --all 將會顯示所有過時或已安裝的套件,而不仅仅是目前專案直接依賴的套件。

json

  • 預設值:false
  • 類型:布林值

是否要輸出 JSON 資料,而不是一般的輸出。

  • npm pkg set 中,它會在將設定值儲存到 package.json 之前,使用 JSON.parse() 來剖析設定值。

並非所有 npm 指令都支援。

long

  • 預設值:false
  • 類型:布林值

lssearchhelp-search 中顯示詳細資訊。

parseable

  • 預設值:false
  • 類型:布林值

從寫入標準輸出的指令中輸出可剖析的結果。對於 npm search,這將會是 tab 分隔的表格格式。

global

  • 預設值:false
  • 類型:布林值

在「全域」模式中執行,因此套件會安裝到 prefix 資料夾,而不是目前的作業目錄。請參閱 資料夾 以進一步瞭解行為上的差異。

  • 套件會安裝到 {prefix}/lib/node_modules 資料夾,而不是目前的作業目錄。
  • bin 檔案會連結到 {prefix}/bin
  • man 頁面會連結到 {prefix}/share/man

workspace

  • 預設值
  • 類型:字串(可以設定多次)

啟用在目前專案已設定的工作空間中執行指令,同時根據此設定選項所定義的工作空間進行過濾,只執行這些工作空間。

workspace 設定的有效值為

  • 工作空間名稱
  • 工作空間目錄路徑
  • 父工作空間目錄路徑(將會選取該資料夾中的所有工作空間)

當設定給 npm init 指令時,可以設定為尚未存在的資料夾,以建立資料夾並將其設定為專案中的全新工作空間。

此值不會匯出到子程序的環境中。

另請參閱