npm update / npm outdated în Node.js

npm și pachete Toate versiunile npm

npm outdated arată pachetele rămase în urmă; npm update le aduce la cea mai nouă versiune permisă de intervalul din package.json.

Sintaxă
npm outdated
npm update [<pachet>] [--save]
npm install <pachet>@latest

Ce face npm update / npm outdated

npm outdated afișează, pentru fiecare dependență cu o versiune mai nouă, trei coloane: Current (instalată), Wanted (cea mai nouă permisă de intervalul din package.json) și Latest (ultima publicată). Dacă găsește pachete vechi, iese cu codul 1.

npm update instalează versiunea Wanted: în intervalul ^3.3.0 urcă până la ultima 3.x, dar nu trece la 4.0.0. Actualizează package-lock.json, dar implicit nu schimbă intervalul din package.json; cu --save îl schimbă și pe acesta.

Pentru o versiune majoră nouă (care poate strica ceva) intervalul trebuie schimbat explicit: npm install chalk@latest. Citește notele de versiune (changelog) ale pachetului înainte.

Parametri

Parametru Descriere
<pachet> Actualizează doar pachetul dat. Fără nume, toate.
--save Scrie noile versiuni și în package.json.
--all La outdated: arată și dependențele dependențelor.
-g Pentru pachetele globale.

Exemple

Exemplul 1: Ce pachete sunt în urmă

prettier are o versiune nouă în intervalul ^3.3.0 (Wanted e mai mare decât Current). chalk și dayjs au versiuni noi doar în afara intervalului (chalk e fixat la 4.x, dayjs la versiunea exactă), așa că npm update nu le atinge.

npm outdated

Ieșire în terminal

Package   Current   Wanted   Latest  Location               Depended by
chalk       4.1.2    4.1.2    6.0.1  node_modules/chalk     magazin
dayjs     1.11.10  1.11.10  1.11.23  node_modules/dayjs     magazin
prettier    3.3.0   3.9.10   3.9.10  node_modules/prettier  magazin

Exemplul 2: Actualizare în interval

După npm update, prettier a urcat la 3.9.10 și a dispărut din lista outdated.

npm update
npm outdated

Ieșire în terminal

changed 1 package, and audited 10 packages in 562ms

3 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
Package  Current   Wanted   Latest  Location            Depended by
chalk      4.1.2    4.1.2    6.0.1  node_modules/chalk  magazin
dayjs    1.11.10  1.11.10  1.11.23  node_modules/dayjs  magazin

Exemplul 3: Trecere la o versiune majoră nouă

Schimbă intervalul în package.json la ^6.0.1. Rulează testele imediat după.

npm install chalk@latest
npm test

Greșeli frecvente

  • Te aștepți ca npm update să treacă la noua versiune majoră: nu iese niciodată din intervalul din package.json. Folosește npm install pachet@latest.
  • Tratezi codul de ieșire 1 al lui npm outdated ca eroare în scripturi: înseamnă doar că există pachete de actualizat.
  • Actualizezi toate pachetele deodată, înainte de o lansare. Fă actualizările în pași mici, cu testele rulate după fiecare.

Comenzi înrudite

  • Versiuni semver (^, ~, >=): Cum citește npm versiunile MAJOR.MINOR.PATCH și intervalele ^, ~, >=, x din package.json.
  • npm install: Instalează pachete din registrul npm în node_modules și le trece în package.json și package-lock.json.
  • npm audit: Verifică dependențele în baza de vulnerabilități cunoscute și le actualizează automat cu npm audit fix.
  • 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.
  • npm ls: Afișează arborele pachetelor instalate și arată de ce a ajuns un pachet în node_modules.