npm ls în Node.js

npm și pachete Toate versiunile npm

Afișează arborele pachetelor instalate și arată de ce a ajuns un pachet în node_modules.

Sintaxă
npm ls [<pachet>] [--all] [--depth=<n>] [--omit=dev]
npm explain <pachet>

Ce face npm ls

npm ls (sau npm list) arată pachetele instalate în proiect, cu versiunea lor. Implicit afișează doar dependențele directe, cele din package.json; --all desenează tot arborele, cu dependențele dependențelor.

Cu un nume de pachet, arată doar drumurile până la el: așa afli cine a adus în proiect un pachet pe care nu l-ai instalat tu. npm explain <pachet> (alias npm why) dă aceeași informație, explicată pas cu pas.

Comanda semnalează problemele: UNMET DEPENDENCY (lipsește un pachet cerut), extraneous (instalat, dar necerut), invalid (versiune în afara intervalului). În aceste cazuri iese cu cod nenul.

Parametri

Parametru Descriere
<pachet> Arată doar unde apare pachetul dat.
--all Tot arborele, nu doar nivelul de sus.
--depth=<n> Câte niveluri să afișeze.
--omit=dev Fără devDependencies.
-g Pachetele globale.

Exemple

Exemplul 1: Dependențele directe și tot arborele

npm ls
npm ls --all

Ieșire în terminal

magazin@1.0.0 /home/ana/proiecte/magazin
├── chalk@4.1.2
├── dayjs@1.11.10
├── ms@2.1.3
└── prettier@3.3.0

magazin@1.0.0 /home/ana/proiecte/magazin
├─┬ chalk@4.1.2
│ ├─┬ ansi-styles@4.3.0
│ │ └─┬ color-convert@2.0.1
│ │   └── color-name@1.1.4
│ └─┬ supports-color@7.2.0
│   └── has-flag@4.0.0
├── dayjs@1.11.10
├── ms@2.1.3
└── prettier@3.3.0

Exemplul 2: Un pachet care lipsește

După npm ci --omit=dev, prettier nu este instalat, deși apare în devDependencies.

npm ls

Ieșire în terminal

magazin@1.0.0 /home/ana/proiecte/magazin
├── dayjs@1.11.10
├── ms@2.1.3
└── UNMET DEPENDENCY prettier@^3.3.0

npm error code ELSPROBLEMS
npm error missing: prettier@^3.3.0, required by magazin@1.0.0

Greșeli frecvente

  • Cauți un pachet indirect cu npm ls simplu și nu-l vezi: implicit apare doar nivelul de sus. Dă numele pachetului (npm ls color-name) sau --all.
  • Folosești npm ls --all pe un proiect mare: arborele are mii de rânduri. Filtrează după nume sau limitează cu --depth.

Comenzi înrudite

  • npm install: Instalează pachete din registrul npm în node_modules și le trece în package.json și package-lock.json.
  • npm update / npm outdated: npm outdated arată pachetele rămase în urmă; npm update le aduce la cea mai nouă versiune permisă de intervalul din package.json.
  • npm link: Leagă un pachet aflat pe disc de un proiect, prin legături simbolice, ca să-l testezi fără să-l publici.
  • npm workspaces: Mai multe pachete într-un singur depozit (monorepo), cu un singur node_modules și comenzi rulate în toate deodată.
  • package-lock.json: Fișierul în care npm notează versiunea exactă a fiecărui pachet instalat, ca toată lumea să primească același node_modules.