Una dintre cele mai bune caracteristici ale Node este managerii de pachete. Există multe moduri diferite de a instala și gestiona pachetele de noduri. Aici, vom analiza avantajele și dezavantajele utilizării unui manager de pachete sau a mai multor manageri de pachete și câteva dintre cele mai bune modalități de a le folosi împreună.
Ce este un manager de pachete întrebați? Citiți mai departe pentru a afla.
Ce sunt managerii de pachete?
În lumea dezvoltării software, dependențele sunt ceea ce aveți nevoie pentru a vă rula proiectul. Sunt ca ingredientele dintr-o rețetă: fără ele nu se întâmplă nimic.
De exemplu, dacă scrieți o aplicație care utilizează JavaScript și dorește acces la unele funcții de la o bibliotecă numită jQuery (pe care multe site-uri au folosit odată), atunci jQuery va fi una dintre dependențele dvs. Veți avea nevoie de instalat, astfel încât atunci când cineva vă vizitează site-ul, să poată vedea acele animații sau interacțiuni interesante pe care le-ați creat cu el!
Managerii de pachete ajută la gestionarea acestor relații dintre proiecte prin gestionarea dependențelor pentru noi, astfel încât nu trebuie să ne facem griji că le descarcăm manual de fiecare dată. când vrem ceva nou adăugat sau actualizat – se asigură, de asemenea, că totul funcționează corect împreună și funcționează fără probleme odată instalat (ceea ce uneori este mai ușor de spus decât Terminat).
Node vine pre-ambalat cu un manager de pachete numit NPM
NPM este managerul implicit de pachete și, ca atare, este încorporat în timpul de execuție al nodului. Puteți folosi NPM pentru a instala pachete din GitHub sau NPM direct. De asemenea, puteți publica pachetele dvs. pe acest site, astfel încât alții să le poată instala folosind versiunea lor de NPM.
NPM nu este folosit doar pentru instalarea pachetelor; se ocupă, de asemenea, de rezolvarea dependențelor și a conflictelor de versiuni între două sau mai multe biblioteci sau module necesare din baza de cod al aplicației.
Aceasta înseamnă că, dacă există mai multe versiuni ale ceva de genul Express rulează pe serverul dvs în orice moment, NPM se va asigura că fiecare instanță primește ceea ce are nevoie, fără a intra în conflict alte situații fac o muncă similară - și toate fără a vă cere să faceți ceva special în afară de simpla chemând cere() pe un obiect când este nevoie!
NPM este un instrument incredibil de puternic și este ușor să începeți cu el. Dar dacă sunteți nou în Node și JavaScript, poate fi dificil să știți ce instrumente sunt disponibile pentru utilizarea dvs. și care sunt cele mai bune pentru un anumit proiect.
Principala problemă cu NPM este că instalarea pachetelor este lent. Aceasta nu este o afacere mare dacă rulați doar un scenariu ocazional sau două, dar poate fi incredibil de frustrant dacă încerci să construiești o întreagă aplicație care folosește zeci de biblioteci diferite și unelte.
Firele și PNPM sunt mai rapide decât NPM
Yarn este o alternativă sigură și de încredere la NPM, care utilizează un fișier de blocare pentru a preveni suprascrierile accidentale și se asigură că dependențele dvs. sunt rezolvate corect la instalarea pachetelor.
De asemenea, are un timp de instalare mai rapid decât NPM, ceea ce îl face deosebit de util dacă lucrați cu proiecte mari care au multe module cu multe dependențe.
PNPM este o alternativă atât la Yarn, cât și la NPM, dar nu este încă la fel de popular, deoarece nu are unele dintre caracteristicile găsite în nici una (cum ar fi fișierele de blocare). Cu toate acestea, dezvoltatorii săi susțin că PNPM poate instala pachete de până la patru ori mai rapid decât Yarn sau NPM datorită naturii sale ușoare; asta înseamnă o utilizare mai mică a spațiului pe disc și pe computer!
Dacă construiți un proiect care necesită doar o mână de dependențe, atunci Yarn sau NPM vor fi probabil suficiente. Cu toate acestea, dacă lucrați cu proiecte mari cu multe module și dependențe, atunci PNPM ar putea fi opțiunea mai bună pentru dvs.
Avantajele utilizării mai multor manageri de pachete
Un singur manager de pachete poate gestiona o singură versiune a oricărei biblioteci date la un moment dat. Dacă doriți să utilizați două versiuni diferite ale aceleiași biblioteci pentru alte proiecte sau în medii diferite (de exemplu, producție vs. dezvoltare), atunci veți avea nevoie de două pachete separate instalate pe sistemul dumneavoastră.
Acest lucru poate duce la conflicte dacă ambele pachete încearcă să-și actualizeze versiunea aceleiași dependențe în același timp. Utilizarea mai multor manageri de pachete înseamnă că aveți mai mult control asupra dependențelor care sunt instalate și unde vă ajută să evitați astfel de conflicte.
Un alt avantaj este că atunci când utilizați mai mulți manageri de pachete, fiecare va oferi propriul set unic de caracteristici. Unele pot fi mai rapide decât altele; unele ar putea avea capacități mai bune de gestionare a dependenței; altele ar putea fi mai potrivite pentru dezvoltarea de aplicații în anumite cadre precum ReactJS sau VueJS etc...
În cele din urmă, utilizarea mai multor manageri de pachete poate ajuta la îmbunătățirea productivității dezvoltatorului, reducând timpul petrecut căutând și instalând dependențe. Acest lucru se datorează faptului că fiecare manager de pachete va fi proiectat având în vedere un set specific de cazuri de utilizare (de exemplu, viteza vs. securitate vs. managementul dependenței, etc...).
Utilizați mai mulți manageri de pachete instalându-i la nivel global
Folosind linia de comandă, puteți specifica ce manager de pachete doriți să utilizați pentru un anumit proiect. Configurați mai mulți manageri de pachete pe mașina dvs.:
- NPM vine pre-ambalat cu Node. Acest lucru vă va permite să instalați alte pachete (și manageri de pachete) din linia de comandă și să gestionați dependențele în toate proiectele dvs. cu NPM. De asemenea, este util dacă doriți să rulați scripturi NPM într-un browser (de exemplu, Webpack), deoarece browserele nu vin cu NPM preinstalat!
- Instalați Yarn și la nivel global folosind NPM. Aceasta este o altă opțiune populară pentru gestionarea dependențelor în cadrul proiectelor JavaScript; are unele avantaje față de NPM care îl pot face preferabil pentru anumite tipuri de proiecte sau echipe
- În cele din urmă, instalați PNPM. Acest manager de pachete este un furk al NPM care este conceput pentru a fi mai rapid și mai stabil. Are și câteva caracteristici suplimentare care pot fi utile pentru anumite tipuri de proiecte, cum ar fi suportul pentru dependențe de la GitHub.
Rețineți că o instalare globală înseamnă că pachetul selectat va fi disponibil pentru întregul dvs. sistem (puteți accesa programul oriunde prin linia de comandă), în timp ce o instalare locală poate fi accesată doar de funcționarea curentă director.
Exemple din lumea reală despre cum puteți utiliza mai mulți manageri de pachete
Consultați aceste utilizări:
1. Firele și NPM pot fi folosite împreună (de ex. create-react-app)
Acest lucru este util atunci când doriți să profitați de viteza și eficiența Yarn, păstrând în același timp compatibilitatea cu pachetele NPM. Dacă aveți nevoie de cea mai recentă versiune a unei biblioteci care nu a fost încă actualizată pentru compatibilitate cu Yarn sau dacă există un alt motiv de ce echipa dvs. ar prefera să rămână cu NPM, în ciuda vitezei sale mai lente sau a setului limitat de caracteristici, atunci acest lucru ar putea funcționa bine pentru dvs. proiect. De asemenea, ajută la evitarea apariției a doi arbori de dependență separati în configurația mono repo!
2. Utilizarea Yarn pentru pachete globale și PNPM pentru instalații locale
În timp ce PNPM este cel mai rapid manager de pachete, poate fi dificil de utilizat pentru pachetele instalate la nivel global. Acest lucru se datorează faptului că folosește o structură de fișiere diferită, care poate cauza probleme de compatibilitate cu programe precum Visual Studio Code. Aici intervine Yarn. Îl puteți folosi pentru pachetele instalate la nivel global și PNPM pentru instalări locale. Această soluție este o modalitate bună de a obține beneficiile ambilor manageri de pachete fără a fi nevoie să vă schimbați prea mult fluxul de lucru. Cu această configurare, dacă doriți să deveniți sălbatic, puteți elimina complet NPM din sistemul dvs. (dar este întotdeauna plăcut să aveți NPM ca rezervă).
3. Utilizarea PNPM cu NPM ca alternativă
Aceasta este o opțiune bună de luat în considerare în cazul în care doriți să utilizați PNPM, dar nu doriți ca toți dezvoltatorii dvs. să învețe încă un instrument nou. Le permite să continue să lucreze cu NPM până când se simt confortabil cu PNPM și au nevoie de el pentru munca lor.
Utilizarea mai multor manageri de pachete ușurează lucrurile
Puteți utiliza mai mulți manageri de pachete. Le puteți instala global sau local și, dacă doriți să specificați ce manager de pachete trebuie utilizat pentru un anumit proiect, utilizați doar linia de comandă!
Dacă doriți să instalați mai mulți manageri de pachete pe sistemul dvs., asigurați-vă că utilizați aceeași versiune de Node.js.
În concluzie, credem că ar trebui să utilizați mai mult de un manager de pachete. Este o modalitate excelentă de a începe cu Node și, de asemenea, de a învăța câteva instrumente noi dacă sunteți deja familiarizat cu NPM. Dacă nu aveți deja instalat Node, configurarea este ușoară pe Windows.