網站導覽
目錄
npm-ls
選擇 CLI 版本
目錄
概要
npm ls <package-spec>alias: list
說明
此指令會將所有已安裝套件的版本列印到 stdout,以及在指定 --all
時的相依套件,並以樹狀結構呈現。
注意:若要取得為何特定套件會包含在樹狀結構中的「由下而上」檢視,請使用 npm explain
。
位置參數為 name@version-range
識別碼,將會將結果限制為僅包含指定套件的名稱路徑。請注意,巢狀套件也會顯示指定套件的路徑。例如,在 npm 原始碼中執行 npm ls promzard
會顯示
npm@10.5.2 /path/to/npm└─┬ init-package-json@0.0.4└── promzard@0.1.5
它會列印出額外的、遺失的和無效的套件。
如果專案指定依賴項的 git 網址,這些網址會在 name@version
之後以括號顯示,讓使用者更容易辨識專案的潛在分支。
顯示的樹狀結構是根據套件依賴項的邏輯依賴項樹狀結構,而非 node_modules
資料夾的實體配置。
當以 ll
或 la
執行時,它會預設顯示延伸資訊。
注意:設計變更待定
當 npm 建立一個天真地巢狀所有依賴項的 node_modules
資料夾時,npm ls
命令的輸出和行為非常有意義。在這種情況下,磁碟上的邏輯依賴項圖形和套件實體樹狀結構大致相同。
隨著 npm v3 中自動安裝時重複依賴項的出現,ls
輸出已修改為以樹狀結構顯示邏輯依賴項圖形,因為這對大多數使用者來說更有用。但是,如果不使用 npm ls -l
,大部分時間都無法顯示套件實際安裝在 何處!
隨著 npm v7 中自動安裝 peerDependencies
的出現,這變得更加奇怪,因為 peerDependencies
在依賴項圖形中在邏輯上位於其依賴項的「下方」,但在磁碟上始終位於其位置的下方或上方。
此外,自從 npm 取得 ls
命令(在版本 0.0.2 中!)以來,依賴項圖形已變得更大,成為一般規則。因此,為了避免將過多的內容傾倒到終端機,npm ls
現在僅顯示頂層依賴項,除非提供 --all
。
目前正在徹底重新檢視此命令的用例、意圖、行為和輸出。預計 npm v8 中至少會對人類可讀的預設 npm ls
輸出進行重大變更。
組態
all
- 預設:false
- 類型:布林值
執行 npm outdated
和 npm ls
時,設定 --all
將顯示所有過期或已安裝的套件,而不僅僅是目前專案直接依賴的套件。
json
- 預設:false
- 類型:布林值
是否輸出 JSON 資料,而非一般輸出。
- 在
npm pkg set
中,它可以在儲存至package.json
之前,使用 JSON.parse() 來解析設定值。
並非所有 npm 命令都支援。
long
- 預設:false
- 類型:布林值
在 ls
、search
和 help-search
中顯示延伸資訊。
parseable
- 預設:false
- 類型:布林值
輸出寫入標準輸出的指令解析結果。對於 npm search
,這將是 tab 分隔的表格格式。
global
- 預設:false
- 類型:布林值
在「全域」模式下操作,以便將套件安裝到 prefix
資料夾,而不是當前工作目錄。請參閱 資料夾,以進一步瞭解行為的差異。
- 套件安裝到
{prefix}/lib/node_modules
資料夾,而不是當前工作目錄。 - bin 檔案連結到
{prefix}/bin
- man 頁面連結到
{prefix}/share/man
depth
- 預設值:如果設定
--all
,則為Infinity
,否則為1
- 類型:null 或數字
為 npm ls
遞迴套件時要達到的深度。
如果未設定,npm ls
將只顯示根專案的立即相依項。如果設定 --all
,則 npm 預設會顯示所有相依項。
omit
- 預設值:如果
NODE_ENV
環境變數設定為「生產」,則為「開發」;否則為空。 - 類型:「開發」、「選用」或「同儕」(可設定多次)
從磁碟上的安裝樹中省略的相依項類型。
請注意,這些相依項仍然會解析並新增到 package-lock.json
或 npm-shrinkwrap.json
檔案中。它們只是不會實際安裝在磁碟上。
如果套件類型同時出現在 --include
和 --omit
清單中,則會將其包含在內。
如果產生的省略清單包含 'dev'
,則 NODE_ENV
環境變數將設定為 'production'
,以適用於所有生命週期指令碼。
include
- 預設值
- 類型:「生產」、「開發」、「選用」或「同儕」(可設定多次)
允許定義要安裝的相依性類型的選項。
這是 --omit=<type>
的反向操作。
在 --include
中指定的相依性類型不會被省略,無論在命令列中指定省略/包含的順序如何。
link
- 預設:false
- 類型:布林值
與 npm ls
搭配使用,將輸出限制為僅連結的套件。
package-lock-only
- 預設:false
- 類型:布林值
如果設定為 true,目前的作業只會使用 package-lock.json
,忽略 node_modules
。
對於 update
,這表示只會更新 package-lock.json
,而不是檢查 node_modules
並下載相依性。
對於 list
,這表示輸出將根據 package-lock.json
描述的樹狀結構,而不是 node_modules
的內容。
unicode
- 預設值:在 Windows 上為 false,在具有 Unicode 區域設定的 Mac/Unix 系統上為 true,由
LC_ALL
、LC_CTYPE
或LANG
環境變數定義。 - 類型:布林值
設定為 true 時,npm 在樹狀結構輸出中使用 Unicode 字元。設定為 false 時,它使用 ASCII 字元而不是 Unicode 字形。
workspace
- 預設值
- 類型:字串(可以設定多次)
在目前專案設定的工作空間中執行命令,同時根據這個設定選項定義的工作空間進行篩選。
workspace
設定的有效值為
- 工作空間名稱
- 工作空間目錄的路徑
- 父工作空間目錄的路徑(將選取該資料夾中的所有工作空間)
設定為 npm init
命令時,可以設定為尚未存在的資料夾,以建立資料夾並將其設定為專案中的全新工作空間。
此值不會匯出到子程式的環境中。
workspaces
- 預設值:null
- 類型:null 或布林值
設定為 true 以在所有設定的工作空間中執行命令。
明確將此設定為 false 將導致 install
等命令完全忽略工作空間。未明確設定時
- 針對
node_modules
樹狀結構進行操作的指令(安裝、更新等)會將工作區連結到node_modules
資料夾。 - 執行其他作業的指令(測試、執行、發布等)會在根目錄專案中進行操作,除非在workspace
設定檔中指定一個或多個工作區。
此值不會匯出到子程式的環境中。
include-workspace-root
- 預設:false
- 類型:布林值
針對指令啟用工作區時,請包含工作區根目錄。
為 false 時,透過 workspace
設定檔指定個別工作區,或透過 workspaces
旗標指定所有工作區,npm 將只針對指定的工作區進行操作,而不會針對根目錄專案進行操作。
此值不會匯出到子程式的環境中。
install-links
- 預設:false
- 類型:布林值
設定後,file: 協定相依項會打包並安裝為一般相依項,而不是建立符號連結。此選項對工作區沒有影響。
另請參閱
- 套件規格
- npm explain
- npm config
- npmrc
- npm 資料夾
- npm explain
- npm install
- npm link
- npm prune
- npm outdated
- npm 更新