npm 羅列 ls

2021-10-29 10:49 更新

列出已安裝的軟件包

概要

npm ls [[<@scope>/]<pkg> ...]


aliases: list, la, ll

描述

此命令將以樹狀結(jié)構(gòu)將已安裝軟件包的所有版本及其依賴項打印到標準輸出。

位置參數(shù)是name@version-range標識符,它將結(jié)果限制為僅指定包的路徑。需要注意的是嵌套包將還顯示路徑指定的包。例如,npm ls promzard在 npm 的源代碼樹中運行將顯示:

npm@@VERSION@ /path/to/npm
└─┬ init-package-json@0.0.4
  └── promzard@0.1.5

它將打印出無關(guān)的、丟失的和無效的包。

如果項目為依賴項指定了 git url,則它們會顯示在 name@version 后面的括號中,以便用戶更容易識別項目的潛在分支。

顯示的樹是邏輯依賴樹,基于包依賴關(guān)系,而不是 node_modules 文件夾的物理布局。

ll或運行時la,默認顯示擴展信息。

注意:設(shè)計變更待定

npm ls命令的輸出和行為作了噸的感覺,當NPM創(chuàng)造了node_modules那個天真的嵌套每個依賴文件夾。在這種情況下,磁盤上包的邏輯依賴關(guān)系圖和物理樹將大致相同。

隨著 npm v3 中依賴項的自動安裝時重復(fù)數(shù)據(jù)刪除的出現(xiàn),ls輸出被修改為將邏輯依賴關(guān)系圖顯示為樹結(jié)構(gòu),因為這對大多數(shù)用戶更有用。但是,如果不使用npm ls -l,則在大多數(shù)情況下無法顯示軟件包的實際安裝位??置!

隨著peerDependencies在 npm v7中自動安裝的出現(xiàn),這變得更加奇怪,因為peerDependencies在依賴關(guān)系圖中邏輯上它們的依賴項在“下方”,但物理上始終位于它們在磁盤上的位置或上方。

此外,在 npm 獲得ls命令(在 0.0.2 版本中?。┖蟮膸啄昀?,依賴圖作為一般規(guī)則變得更大。因此,為了避免向終端傾倒過多的內(nèi)容,npm ls現(xiàn)在只顯示頂級依賴項,除非--all提供。

目前正在對該命令的用例、意圖、行為和輸出進行徹底的重新檢查。預(yù)計至少會對npm lsnpm v8 中的默認人類可讀輸出進行重大更改。

配置

all 所有

  • 默認值:false
  • 類型:Boolean

運行npm outdatednpm ls時,設(shè)置--all將顯示所有過時或已安裝的包,而不僅僅是當前項目直接依賴的包。

json

  • 默認值:false
  • 類型:Boolean

是否輸出JSON數(shù)據(jù),而不是正常輸出。

npm pkg set它允許在將設(shè)置值保存到您的package.json.并非所有 npm 命令都支持。

long

  • 默認值:false
  • 類型:Boolean

顯示在擴展信息ls,search以及help-search。

parseable 可解析

  • 默認值:false
  • 類型:Boolean

從寫入標準輸出的命令輸出可解析的結(jié)果。對于?npm search,這將是制表符分隔的表格格式。

global 全局

  • 默認值:false
  • 類型:Boolean

global模式下運行,以便將包安裝到prefix?文件夾而不是當前工作目錄中。有關(guān)行為差異的更多信息,請參閱?NPM 文件夾。

  • 軟件包安裝到{prefix}/lib/node_modules文件夾中,而不是當前工作目錄中。
  • bin 文件鏈接到?{prefix}/bin
  • 手冊頁鏈接到?{prefix}/share/man

depth 深度

  • 默認值:Infinity如果--all設(shè)置,否則1
  • 類型:nullNumber

遞歸包時要走的深度npm ls。

如果未設(shè)置,npm ls將僅顯示根項目的直接依賴項。如果--all設(shè)置,則 npm 將默認顯示所有依賴項。

omit 忽略

= 默認值:如果NODE_ENV環(huán)境變量設(shè)置為 'production',則為'dev?',否則為空。

  • 類型:“dev”、“optional”或“peer”(可多次設(shè)置)

要從磁盤上的安裝樹中省略的依賴項類型。

請注意,這些依賴的仍然解決,加入?package-lock.jsonnpm-shrinkwrap.json文件。它們只是沒有物理安裝在磁盤上。

如果包類型同時出現(xiàn)在--include--omit列表中,則它將被包括在內(nèi)。

如果生成的省略列表包含'dev',則NODE_ENV環(huán)境變量將被設(shè)置'production'為所有生命周期腳本。

link 鏈接

  • 默認值:false
  • 類型:Boolean

npm ls一起使用,將輸出限制為僅那些鏈接的包。

package-lock-only 僅包鎖

  • 默認值:false
  • 類型:Boolean

如果設(shè)置為 true,當前操作將只使用package-lock.json,忽略node_modules。

因為update這意味著只會package-lock.json更新,而不是檢查node_modules和下載依賴項。

對于list這個裝置的輸出將根據(jù)由所描述的樹?package-lock.json,而不是內(nèi)容node_modules。

unicode

  • 默認值:false在Windows中,真正在用Unicode語言環(huán)境MAC / Unix系統(tǒng),由定義LC_ALL,LC_CTYPELANG環(huán)境變量。
  • 類型:Boolean

當設(shè)置為 true 時,npm 在樹輸出中使用 unicode 字符。當為 false 時,它使用 ascii 字符而不是 unicode 字形。

workspace 工作區(qū)

  • 默認:
  • 類型:String(可多次設(shè)置)

允許在當前項目的已配置工作區(qū)的上下文中運行命令,同時通過僅運行此配置選項定義的工作區(qū)進行過濾。

workspace配置的有效值為:

  • 工作區(qū)名稱
  • 工作區(qū)目錄的路徑
  • 父工作區(qū)目錄的路徑(將導致選擇所有嵌套工作區(qū))

為該npm init命令設(shè)置時,可以將其設(shè)置為尚不存在的工作區(qū)的文件夾,以創(chuàng)建該文件夾并將其設(shè)置為項目中的全新工作區(qū)。

此值不會導出到子進程的環(huán)境中。

workspaces 工作區(qū)

  • 默認值:false
  • 類型:Boolean

啟用在所有已配置工作區(qū)的上下文中運行命令。

此值不會導出到子進程的環(huán)境中。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號