Jednou z najlepších funkcií Node sú správcovia balíkov. Existuje mnoho rôznych spôsobov inštalácie a správy balíkov uzlov. Tu sa pozrieme na výhody a nevýhody používania jedného správcu balíkov alebo používania viacerých správcov balíkov a na niektoré z najlepších spôsobov ich spoločného používania.
Pýtate sa, čo je správca balíkov? Čítajte ďalej a dozviete sa.
Čo sú správcovia balíkov?
Vo svete vývoja softvéru sú závislosti to, čo potrebujete na spustenie svojho projektu. Sú ako ingrediencie v recepte: bez nich sa nič nestane.
Napríklad, ak píšete aplikáciu, ktorá používa JavaScript a vyžaduje prístup k niektorým funkciám knižnica s názvom jQuery (ktoré mnohé webové stránky kedysi používali), potom bude jQuery jednou z vašich závislostí. Budete ho potrebovať nainštalovaný, aby keď niekto navštívi vašu stránku, mohol vidieť tie skvelé animácie alebo interakcie, ktoré ste s ňou vytvorili!
Správcovia balíkov pomáhajú spravovať tieto vzťahy medzi projektmi tým, že za nás spravujú závislosti, takže sa nemusíme starať o to, aby sme ich každý keď chceme niečo nové pridať alebo aktualizovať – tiež zaistia, aby všetko fungovalo správne a fungovalo hladko po inštalácii (čo sa niekedy povie ľahšie ako hotový).
Uzol sa dodáva vopred zabalený so správcom balíkov nazývaným NPM
NPM je predvolený správca balíkov a ako taký je zabudovaný do runtime uzla. NPM môžete použiť na inštaláciu balíkov z GitHubu resp NPM priamo. Svoje balíky môžete publikovať aj na tejto stránke, aby si ich ostatní mohli nainštalovať pomocou svojej verzie NPM.
NPM sa nepoužíva len na inštaláciu balíkov; tiež rieši riešenie závislostí a konflikty verzií medzi dvoma alebo viacerými požadovanými knižnicami alebo modulmi v základni kódu aplikácie.
To znamená, že ak existuje viacero verzií niečoho podobného Express beží na vašom serveri NPM kedykoľvek zabezpečí, aby každá inštancia dostala to, čo potrebuje, bez toho, aby bola v konflikte iné prípady, ktoré vykonávajú podobnú prácu – a to všetko bez toho, aby ste museli robiť niečo špeciálne okrem jednoduchosti volania vyžadovať() v prípade potreby na objekte!
NPM je neuveriteľne výkonný nástroj a je ľahké s ním začať. Ale ak ste novým používateľom Node a JavaScriptu, môže byť náročné vedieť, aké nástroje sú dostupné pre vaše použitie – a ktoré sú pre daný projekt najlepšie.
Hlavným problémom NPM je pomalá inštalácia balíkov. Toto nie je veľký problém, ak spúšťate len príležitostne skripty, ale môže to byť neuveriteľné frustrujúce, ak sa snažíte vytvoriť celú aplikáciu, ktorá využíva desiatky rôznych knižníc a nástrojov.
Priadza a PNPM sú rýchlejšie ako NPM
Yarn je bezpečná a spoľahlivá alternatíva k NPM, ktorá používa súbor zámku na zabránenie náhodnému prepísaniu a zaisťuje správne vyriešenie vašich závislostí pri inštalácii balíkov.
Má tiež rýchlejší čas inštalácie ako NPM, vďaka čomu je obzvlášť užitočný, ak pracujete s veľkými projektmi, ktoré majú veľa modulov s množstvom závislostí.
PNPM je alternatívou k Yarn aj NPM, ale zatiaľ nie je tak populárny, pretože nemá niektoré funkcie, ktoré sa nachádzajú v oboch (napríklad súbory zámkov). Jeho vývojári však tvrdia, že PNPM dokáže nainštalovať balíčky až štyrikrát rýchlejšie ako Yarn alebo NPM vďaka svojej ľahkej povahe; to znamená aj menšie využitie miesta na disku vo vašom počítači!
Ak vytvárate projekt, ktorý vyžaduje iba niekoľko závislostí, potom bude pravdepodobne stačiť priadza alebo NPM. Ak však pracujete s veľkými projektmi s mnohými modulmi a závislosťami, PNPM môže byť pre vás lepšou voľbou.
Výhody používania viacerých správcov balíkov
Jeden správca balíkov môže naraz spracovať iba jednu verziu danej knižnice. Ak chcete použiť dve rôzne verzie tej istej knižnice pre iné projekty alebo v rôznych prostrediach (napríklad produkcia vs. development), potom budete potrebovať dva samostatné balíky nainštalované vo vašom systéme.
To môže viesť ku konfliktom, ak sa oba balíky pokúsia aktualizovať svoju verziu rovnakej závislosti v rovnakom čase. Používanie viacerých správcov balíkov znamená, že máte väčšiu kontrolu nad tým, ktoré závislosti sú nainštalované a kde, čo pomáha predchádzať týmto druhom konfliktov.
Ďalšou výhodou je, že pri použití viacerých správcov balíkov bude každý poskytovať svoj vlastný jedinečný súbor funkcií. Niektoré môžu byť rýchlejšie ako iné; niektoré môžu mať lepšie možnosti správy závislostí; iné môžu byť vhodnejšie na vývoj aplikácií v rámci určitých rámcov, ako je ReactJS alebo VueJS atď...
Nakoniec, používanie viacerých správcov balíkov môže pomôcť zlepšiť produktivitu vývojárov znížením času stráveného hľadaním a inštaláciou závislostí. Je to preto, že každý správca balíkov bude navrhnutý s ohľadom na špecifický súbor prípadov použitia (napríklad rýchlosť vs. bezpečnosť vs. riadenie závislostí atď...).
Použite viacerých správcov balíkov ich globálnou inštaláciou
Pomocou príkazového riadka môžete určiť, ktorého správcu balíkov chcete použiť pre konkrétny projekt. Nastavte na svojom počítači viacerých správcov balíkov:
- NPM sa dodáva vopred zabalený s Node. To vám umožní inštalovať ďalšie balíky (a správcov balíkov) z príkazového riadku a spravovať závislosti vo všetkých vašich projektoch pomocou NPM. Je to tiež užitočné, ak chcete spúšťať skripty NPM v prehliadači (napr. Webpack), pretože prehliadače sa nedodávajú s predinštalovaným NPM!
- Nainštalujte Yarn globálne aj pomocou NPM. Toto je ďalšia populárna možnosť na správu závislostí v rámci projektov JavaScript; má oproti NPM určité výhody, vďaka ktorým je vhodnejší pre určité typy projektov alebo tímov
- Nakoniec nainštalujte PNPM. Tento správca balíkov je vidlica NPM, ktorá je navrhnutá tak, aby bola rýchlejšia a stabilnejšia. Má tiež niektoré ďalšie funkcie, ktoré môžu byť užitočné pre niektoré typy projektov, ako je napríklad podpora závislostí z GitHubu.
Upozorňujeme, že globálna inštalácia znamená, že vybraný balík bude dostupný pre celý váš systém (môžete pristupovať program kdekoľvek cez príkazový riadok), pričom k lokálnej inštalácii má prístup iba aktuálne pracujúci adresár.
Príklady použitia viacerých správcov balíkov zo skutočného sveta
Pozrite sa na tieto použitia:
1. Priadza a NPM môžu byť použité spolu (napr. create-react-app)
To je užitočné, keď chcete využiť rýchlosť a efektivitu Yarn pri zachovaní kompatibility s balíkmi NPM. Ak potrebujete najnovšiu verziu knižnice, ktorá ešte nebola aktualizovaná kvôli kompatibilite s Yarn, alebo ak existuje iný dôvod prečo by váš tím radšej zostal pri NPM napriek jeho pomalšej rýchlosti alebo obmedzenej sade funkcií, potom by to pre vás mohlo fungovať dobre projektu. Pomáha tiež vyhnúť sa tomu, aby ste v nastavení mono repo mali dva samostatné stromy závislostí!
2. Použitie priadze pre globálne balíky a PNPM pre lokálne inštalácie
Zatiaľ čo PNPM je najrýchlejší správca balíkov, môže byť zložité použiť ho pre globálne nainštalované balíky. Je to preto, že používa inú štruktúru súborov, ktorá môže spôsobiť problémy s kompatibilitou s programami, ako je Visual Studio Code. Tu prichádza na scénu priadza. Môžete ho použiť pre vaše globálne nainštalované balíky a PNPM pre lokálne inštalácie. Toto riešenie je dobrý spôsob, ako získať výhody oboch správcov balíkov bez toho, aby ste museli príliš meniť pracovný tok. S týmto nastavením – ak sa chcete zblázniť – môžete úplne odstrániť NPM zo systému (ale vždy je pekné mať NPM ako zálohu).
3. Použitie PNPM S NPM ako záloha
Je to dobrá možnosť, ktorú treba zvážiť v prípade, že chcete používať PNPM, ale nechcete, aby sa všetci vaši vývojári museli učiť nový nástroj. Umožňuje im pokračovať v práci s NPM, kým sa s PNPM neuspokoja a nebudú ho potrebovať pre svoju prácu.
Používanie viacerých správcov balíkov uľahčuje prácu
Môžete použiť viacero správcov balíkov. Môžete ich nainštalovať globálne alebo lokálne a ak chcete určiť, ktorý správca balíkov sa má použiť pre konkrétny projekt, stačí použiť príkazový riadok!
Ak chcete do svojho systému nainštalovať viacero správcov balíkov, uistite sa, že používate rovnakú verziu Node.js.
Na záver si myslíme, že by ste mali používať viac ako jedného správcu balíkov. Je to skvelý spôsob, ako začať s Node a tiež sa naučiť nejaké nové nástroje, ak už poznáte NPM. Ak ešte nemáte nainštalovaný Node, nastavenie je v systéme Windows jednoduché.