npm 羅列 ls

2021-10-29 10:49 更新

列出已安裝的軟件包

概要

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


aliases: list, la, ll

描述

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

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

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

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

如果項(xiàng)目為依賴項(xiàng)指定了 git url,則它們會(huì)顯示在 name@version 后面的括號(hào)中,以便用戶更容易識(shí)別項(xiàng)目的潛在分支。

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

ll或運(yùn)行時(shí)la,默認(rèn)顯示擴(kuò)展信息。

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

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

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

隨著peerDependencies在 npm v7中自動(dòng)安裝的出現(xiàn),這變得更加奇怪,因?yàn)?code>peerDependencies在依賴關(guān)系圖中邏輯上它們的依賴項(xiàng)在“下方”,但物理上始終位于它們?cè)诖疟P上的位置或上方。

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

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

配置

all 所有

  • 默認(rèn)值:false
  • 類型:Boolean

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

json

  • 默認(rèn)值:false
  • 類型:Boolean

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

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

long

  • 默認(rèn)值:false
  • 類型:Boolean

顯示在擴(kuò)展信息ls,search以及help-search

parseable 可解析

  • 默認(rèn)值:false
  • 類型:Boolean

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

global 全局

  • 默認(rèn)值:false
  • 類型:Boolean

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

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

depth 深度

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

遞歸包時(shí)要走的深度npm ls。

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

omit 忽略

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

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

要從磁盤上的安裝樹中省略的依賴項(xiàng)類型。

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

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

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

link 鏈接

  • 默認(rèn)值:false
  • 類型:Boolean

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

package-lock-only 僅包鎖

  • 默認(rèn)值:false
  • 類型:Boolean

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

因?yàn)?code>update這意味著只會(huì)package-lock.json更新,而不是檢查node_modules和下載依賴項(xiàng)。

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

unicode

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

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

workspace 工作區(qū)

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

允許在當(dāng)前項(xiàng)目的已配置工作區(qū)的上下文中運(yùn)行命令,同時(shí)通過僅運(yùn)行此配置選項(xiàng)定義的工作區(qū)進(jìn)行過濾。

workspace配置的有效值為:

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

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

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

workspaces 工作區(qū)

  • 默認(rèn)值:false
  • 類型:Boolean

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)