Cum să actualizați pachetele npm la cea mai recentă versiune
În orice proiect NodeJS, veți dori să vă actualizați des dependențele pachetului. Din fericire, procesul este simplu și se poate face în doar câteva minute. Desigur, doriți să verificați toate actualizările cu niște QA și, sperăm, câteva teste automate (un cadru de testare sau un instrument CI poate fi de ajutor).
Cum să vă actualizați pachetele
Comanda npm update vă permite să actualizați orice pachet învechit, conform versiunilor dvs. package.json. Aceasta este modalitatea implicită de a actualiza pachetele cu npm.
Cum știu ce pachete au actualizări?
O modalitate încorporată de a verifica ce pachete sunt învechite este să rulați comanda npm outdated .
O altă modalitate, pe care o prefer, este să folosesc modulul npm-check-updates (ncu). Acest pachet vă permite să actualizați cu ușurință dependențele pachetului.json la cele mai recente versiuni de module, indiferent de orice constrângere de versiune din acele fișiere. Apoi, cu comenzile npm install sau npm update, puteți actualiza pachetele instalate.
În restul acestui articol, vom arunca o privire asupra diferitelor instrumente NodeJS pentru a actualiza pachetele npm la cea mai recentă versiune, cu sau fără constrângeri semantice de versiuni. Mai exact, vom acoperi:
Mergeți înainte folosind linkurile de mai sus sau citiți mai departe pentru a explora lumea actualizării pachetelor npm!
Versiune semantică: intervale de versiuni majore, minore și patch
Orice pachet npm sau bower poate folosi versiunea semantică (semver) așa cum este specificat pe site-ul web semver.org. Aceasta înseamnă că o versiune de pachet poate consta din trei componente:
- Versiune MAJOR pentru când există modificări incompatibile ale API
- Versiune MINOR pentru când funcționalitatea este adăugată într-o manieră compatibilă cu versiunea inversă
- Versiune PATCH pentru remedierea erorilor compatibile cu invers
Node-semver este pachetul care analizează semver-urile și, de asemenea, înțelege o sintaxă suplimentară semver, cum ar fi: intervale de bază, intervale tilde, etichete de pre-lansare, intervale caret, intervale de cratime și intervale x.
În calitate de utilizator al pachetelor NodeJS, puteți specifica ce tipuri de actualizări poate accepta aplicația dvs. în fișierul package.json. De exemplu, dacă începeți cu o versiune de pachet 1.0.4, așa puteți specifica intervalele de versiuni de actualizare permise în trei moduri de bază:
- Pentru a permite lansările de corecții: 1.0 sau 1.0.x sau ~1.0.4
- Pentru a permite lansări minore: 1 sau 1.x sau ^1.0.4
- Pentru a permite lansări majore: * sau x
Sunt disponibile și mai multe intervale de versiuni cu granulație fină dacă utilizați sintaxa Semver suplimentară menționată mai sus.
Mai întâi, Instalați nodul, npm și ncu
Acum putem instala instrumentul ncu la nivel global, tastând următoarele:
npm install -g npm-check-updates
S-ar putea să aveți mai întâi nevoie de permisiuni de utilizator root; dacă da, tastați „sudo” în fața acelei comenzi:
sudo npm install -g npm-check-updates
Să aruncăm o privire la sintaxa de ajutor ncu :
$ ncu –help Utilizare: ncu [opțiuni] [filtru] [filtru] este o listă sau regex de nume de pachete de verificat (toate celelalte vor fi ignorate). Opțiuni: -h, –help scoate informații despre utilizare -V, –version scoate numărul versiunii -d, –dev verifica numai devDependencies -e, –error-level setează nivelul de eroare. 1: iese cu codul de eroare 0 dacă nu apar erori. 2: iese cu codul de eroare 0 dacă niciun pachet nu necesită actualizare (util pentru integrare continuă). Implicit este 1. -g, –global verifica pachetele globale în loc de în proiectul curent -j, –jsonAll scoate fișierul de pachet nou în loc de mesaj care poate fi citit de om –jsonUpgraded ieșire dependențe actualizate în json -l, –loglevel ce nivel de jurnal raport: silent, error, warn, info, verbose, silly (implicit: warn) -m, –packageManager npm (implicit) sau bower -o, –opțional verifica numai optionalDependencies –packageData include fișierul pachet stringificat (utilizați în schimb stdin) –packageFile locația fișierului pachetului (implicit: ./package.json) -p, –prod verifica numai dependențe (nu devDependencies) -r, –registry specifică registrul npm terță parte -s, –silent nu scoate nimic (–loglevel silent) -t , –greatest găsiți cele mai înalte versiuni disponibile în loc de cele mai recente versiuni stabile -u, –upgrade suprascrie fișierul pachetului -a, –upgradeToate includ și acele dependențe a căror ultimă versiune satisface dependența declarată de semver
Acum un exemplu de proiect NodeJS
Să creăm un exemplu de proiect NodeJS numit „foo”, pe care îl vom lăsa să depindă de o versiune mai veche a pachetului „express” și „request”, pentru a arăta cum să actualizați pachetele folosind comenzile NodeJS install , update și ncu :
mkdir foo cd foo npm init [răspunde la întrebările init npm] npm install –save [email protected] [email protected]
Acum pachetul nostru.json va arăta cam așa:
{ „nume”: „foo”, „versiune”: „1.0.0”, „descriere”: „foo”, „principal”: „index.js”, „scripturi”: { „test”: „test” } , „cuvinte cheie”: [ „foo” ], „autor”: „niciun”, „licență”: „ISC”, „dependențe”: { „express”: „^3.1.2”, „cerere”: „^1.9 .9” } }
Vedem cum npm a instalat versiunile mai vechi ale acestor două pachete din cea mai înaltă versiune de pachet permisă și disponibilă și a actualizat fișierul package.json.
Verificarea posibilelor actualizări
Pentru a vedea ce pachete au actualizări disponibile, putem folosi fie instrumentul ncu, fie comanda învechită npm .
Detectarea actualizărilor cu npm
Dacă dorim să verificăm pachetele care au actualizări, puteți folosi comanda învechită npm :
$ npm învechit Pachet Actual dorit Ultima locație expres 3.1.2 3.21.2 4.13.3 cerere expres 1.9.9 1.9.9 2.67.0 cerere
Vedem că versiunea pachetului „cerere” este în concordanță cu ceea ce ne-am dorit (așa cum a afirmat serverul nostru în timpul instalării), dar că există o nouă versiune majoră disponibilă. Pentru pachetul „express”, vedem că atât versiunile dorite, cât și cele mai recente au disponibile versiuni mai noi.
Detectarea actualizărilor cu ncu
Folosind instrumentul ncu putem detecta și ce pachete au versiuni mai noi:
$ ncu express ^3.1.2 -> ^4.13.3 cerere ^1.9.9 -> ^2.67.0
Vedem că există actualizări majore disponibile pentru ambele pachete.
Actualizări cu versiuni stricte vs. non-strict
Putem permite fie actualizări stricte cu versiuni (strict în cadrul constrângerilor noastre semver package.json), fie actualizări versiuni nestrictive (pentru a actualiza indiferent de constrângerile noastre semver).
Actualizări stricte cu versiuni folosind npm
Să folosim comanda npm update pentru a permite actualizări stricte cu versiuni:
actualizare $ npm
Acum să aruncăm o privire la npm învechit din nou:
$ npm învechit Pachet Actual dorit Ultima locație expres 3.21.2 3.21.2 4.13.3 cerere expres 1.9.9 1.9.9 2.67.0 cerere
Frumos, actualizarea npm a făcut ceea ce i-am cerut și nu mai mult!
Actualizări non-strict cu versiuni folosind ncu
Pentru actualizări cu versiuni non-strictive, există mai multe opțiuni de linie de comandă pe care le putem folosi cu ncu.
ncu –upgrade [pachet]
Pentru a actualiza pachetul „cerere” la cea mai nouă versiune majoră, am putea face următoarele:
$ ncu –cerere de solicitare de upgrade ^1.9.9 -> ^2.67.0
Aceasta va actualiza pachetul.json semver pentru pachetul „cerere”:
„dependențe”: { „express”: „^3.1.2”, „cerere”: „^2.67.0” }
Vă rugăm să rețineți că instrumentul ncu menține politicile existente de versiuni semantice (de exemplu, „permiteți doar actualizări minore”, în cazul nostru), atunci când actualizați fișierul package.json. Prin urmare, versiunea majoră a pachetului „cerere” a fost mărită, dar politica de a permite doar upgrade-uri minore la o actualizare npm este încă în vigoare.
Acum trebuie să instalăm versiunea actualizată a pachetului folosind npm install :
instalare npm
Să verificăm versiunea instalată a pachetului „cerere”:
Solicitare listă $ npm [email protected] /home/user/foo |— [email protected]
ncu –upgrade
Pentru a actualiza toate dependențele pachetului nostru în package.json (inclusiv pachetul nostru „express”), am face următoarele:
ncu –upgrade npm install
ncu –upgradeAll
Instrumentul ncu poate instala versiuni mai noi de pachete în conformitate cu constrângerile package.json semver, dar nu actualizează acele versiuni mai noi în fișierul package.json.
Dacă doriți să impuneți scrierea acelor versiuni de pachet nou instalate în package.json, puteți utiliza opțiunea –upgradeAll . Deși nu este necesară, această funcționalitate este acolo dacă o doriți.
Pentru a impune suprascrierea versiunilor pachetului package.json la cel mai recent număr de versiune specific (permis de server), tastați:
ncu –upgradeAll npm install
Filtrarea cu ncu
Am putea, de asemenea, să facem upgrade la pachete care se potrivesc cu o sintaxă a expresiei regulate.
De exemplu, aceasta ar potrivi și actualiza toate pachetele care încep cu „gulp-“:
ncu –upgrade /^gulp-/
Pentru a verifica numai pachetele „dependențe”, și nu și pachetele „devDependencies”, faceți următoarele:
$ ncu -p
Acest lucru poate fi util în cazurile în care doriți mai multă stabilitate a mediului de dezvoltator.
Folosind bower.json
Pentru a utiliza fișierul bower.json cu ncu, specificați acea opțiune pe linia de comandă:
$ ncu -m bower
Cuvinte finale despre actualizarea pachetului npm
NodeJS are instrumente excelente pentru gestionarea flexibilă a pachetelor și versiunea dependențelor. Asigurați-vă că aruncați o privire la documentația npm pentru a afla mai multe despre gestionarea pachetelor npm și cele mai bune practici.
Dezvăluirea agentului de publicitate
Gazduirweb este o resursă online gratuită care oferă utilizatorilor conținut valoros și servicii de comparare. Pentru a menține această resursă 100% gratuită, primim compensații de la multe dintre ofertele afișate pe site. Alături de factorii cheie de revizuire, această compensație poate afecta modul în care și locul în care apar produsele pe site (inclusiv, de exemplu, ordinea în care apar). Gazduirweb nu include întregul univers al ofertelor disponibile. Opiniile editoriale exprimate pe site sunt strict ale noastre și nu sunt furnizate, susținute sau aprobate de agenții de publicitate.
Politica noastră de revizuire editorială
Site-ul nostru se angajează să publice conținut independent, precis, ghidat de reguli editoriale stricte. Înainte ca articolele și recenziile să fie publicate pe site-ul nostru, acestea sunt supuse unui proces amănunțit de revizuire efectuat de o echipă de editori independenți și experți în materie pentru a asigura acuratețea, actualitatea și imparțialitatea conținutului. Echipa noastră editorială este separată și independentă de agenții de publicitate ai site-ului nostru, iar opiniile pe care le exprimă pe site-ul nostru sunt proprii. Pentru a citi mai multe despre membrii echipei noastre și despre mediul lor editorial, vă rugăm să vizitați pagina Despre a site-ului nostru.
Leave a Reply