npm-explain

說明已安裝的套件

選擇 CLI 版本

概要

npm explain <package-spec>
alias: why

說明

此指令會列印出導致特定套件安裝在目前專案中的相依關係鏈。

如果提供一個或多個套件規格,則只有與其中一個規格相符的套件才會說明其關係。

套件規格也可以參考 ./node_modules 中的資料夾。

例如,在 npm 的原始碼樹中執行 npm explain glob 會顯示

glob@7.1.6
node_modules/glob
glob@"^7.1.4" from the root project
glob@7.1.1 dev
node_modules/tacks/node_modules/glob
glob@"^7.0.5" from rimraf@2.6.2
node_modules/tacks/node_modules/rimraf
rimraf@"^2.6.2" from tacks@1.3.0
node_modules/tacks
dev tacks@"^1.3.0" from the root project

若要僅說明位於特定資料夾中的套件,請將其作為引數傳遞給指令。這在嘗試找出特定相依關係為何重複以滿足專案中衝突的版本需求時很有用。

$ npm explain node_modules/nyc/node_modules/find-up
find-up@3.0.0 dev
node_modules/nyc/node_modules/find-up
find-up@"^3.0.0" from nyc@14.1.1
node_modules/nyc
nyc@"^14.1.1" from tap@14.10.8
node_modules/tap
dev tap@"^14.10.8" from the root project

組態

json

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

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

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

並非所有 npm 指令都支援。

工作區

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

在根據此組態選項定義的工作區進行過濾時,啟用在目前專案的已組態工作區中執行指令。

對於 workspace 組態的有效值為

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

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

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

另請參閱