Menadżery pakietów w JavaScript - okładka

Menadżery pakietów w JavaScript

Opublikowano Kategorie JavaScriptCzas czytania 4min

W tym wpisie przedstawię Ci najpopularniejsze menadżery pakietów w JavaScript. Npmowi, czyli jednemu z najpopularniejszych poświęciłem już dedykowany artykuł. Dowiesz się tam, czym on jest, do czego służy, proces jego instalacji i podstawowe polecenia. Jeśli nie wiesz, czym jest npm, to zapoznaj się z podlinkowanym artykułem, ponieważ wiedza tam zawarta przyda Ci się w tym artykule. Nawet jeśli już go kiedyś przeczytałeś, to może warto sobie odświeżyć wiedzę 😉

Na samym początku myślę, że warto powiedzieć czy są menadżery pakietów. Jak sama nazwa wskazuje, menadżery pakietów pozwalają na zarządzanie zależnościami dodawanymi do projektu. Dzięki menadżerom możemy bezproblemowo dodawać, usuwać czy aktualizować wykorzystywane pakiety. Oprócz tego pozwalają nam na definiowanie skryptów. Do najpopularniejszych menadżerów należą:

  • npm — opisany przeze mnie we wpisie Podstawy pracy z npm,
  • Bower — raczej należy już do reliktów przeszłości i nie warto zawracać nim sobie głowy. Wymieniam go tu raczej w formie ciekawostki,
  • Yarn,
  • pnpm

Tym razem skupimy się głównie na dwóch ostatnich pozycjach z tej listy.

Logiem Yarna jest kotek - ale nie aż tak ładny jak ten an zdjęciu :)

Yarn

Yarn jest menadżerem pakietów stworzonym przez zespół Facebooka. Twórcy przedstawiają go jako niezwykle szybki, co w zasadzie jest prawdą. Jak pokazują badania przeprowadzone przez jednego z twórców w serwisie Medium, średni czas instalacji projektu, na którym przeprowadzono benchmark, wynosił dla npm 188 sekund,  gdzie Yarnowi zajęło to zaledwie 39 sekund! Odpowiedź na to pytanie jest niezwykle prosta — Yarn przede wszystkim jest w stanie pobierać wiele paczek jednocześnie, gdzie npm instaluje paczki sekwencyjnie jedna po drugiej. Kolejnym argumentem przemawiającym na korzyść Yarna jest możliwość ponownego używania paczek. Jeżeli mamy na naszym komputerze daną paczkę to zostanie ona użyta zamiast ponownie pobrana. Link do wspomnianego benchmarka znajdziesz w źródłach na końcu wpisu.

Oprócz tego twórcy gwarantują nam zachowanie względów bezpieczeństwa oraz niezawodność. Do tego otrzymujemy przejrzysty plik .lock i otrzymujemy przepis na świetny menadżer pakietów! Będąc już przy temacie, to zachęcam do przeczytania artykułu na snyk.io, gdzie opisane zostało, jak potencjalnie można przeprowadzić atak na aplikację z wykorzystaniem plików .lock.

pnpm

Kolejny menadżer pakietów, jaki warto poznać to pnpm. Tu również mamy zapewnienia o szybkości i wydajności. Czymś, co wyróżnia pnpm-a, jest to, że dzięki niemu mamy pewność, że dana wersja paczki została zainstalowana na naszym komputerze wyłącznie raz. Wyobraź sobie, jakie to jest zbawienie dla ludzi, którzy pracują na komputerach z dyskami 128GB/256GB, które wciąż trafiają się w budżetowych lub poleasingowych laptopach i niektórych wariantach MacBook-ów.

Szczególnie przydatny pnpm okaże się przy pracy z wieloma paczkami trzymanymi w jednym repozytorium. Dzięki workspace’om możemy pracować na kilku paczkach jednocześnie i bezpośrednio używać ich w innych paczkach w tym samym repozytorium. Opcja link-workspace-packages pozwoli nam podlinkować paczki, w których coś już zmieniliśmy, a które zmiany są nam potrzebne w innej paczce. Bazując na własnym doświadczeniu, mogę powiedzieć, że mechanizm linkowania w pnpm działa wyśmienicie!

Podsumowanie

W podsumowaniu przede wszystkim nasuwa mi się pytanie, jakiego menadżera pakietów ty używasz? Jeśli zostawisz mi odpowiedź na to pytanie w komentarzu, to koniecznie również napisz, dlaczego ten, a nie inny menadżer.

Osobiście do małych i prostych projektów używam Yarna — jest dla mnie w zupełności wystarczający. Do bardziej skomplikowanych projektów, a już szczególnie gdy rozwijasz wiele paczek w obrębie jednego repozytorium, to bez zastanawiania się wybierz pnpm-a!

Jak zwykle też zachęcam do sprawdzenia źródeł, gdzie znajdziesz dodatkową porcję wiedzy.

Źródła i materiały dodatkowe

Dominik Szczepaniak

Zawodowo Senior Software Engineer w CKSource. Prywatnie bloger, fan włoskiej kuchni, miłośnik jazdy na rowerze i treningu siłowego.

Inne wpisy, które mogą Cię zainteresować

Zapisz się na mailing i odbierz e-booka

Zapisując się na mój mailing, otrzymasz darmowy egzemplarz e-booka 106 Pytań Rekrutacyjnych Junior JavaScript Developer! Będziesz też otrzymywać wartościowe treści i powiadomienia o nowych wpisach na skrzynkę e-mail.

Subscribe
Powiadom o
guest

0 komentarzy
Inline Feedbacks
View all comments