Jak włączyć i używać pnpm w ServBay
pnpm
to nowoczesny i wydajny menedżer pakietów dla Node.js, stworzony z myślą o rozwiązaniu typowych problemów występujących w tradycyjnych menedżerach pakietów, takich jak npm
czy yarn
, podczas obsługi zależności. Dzięki wykorzystaniu plikowego systemu adresowania treści oraz twardych i symbolicznych linków, pnpm
znacząco redukuje zużycie miejsca na dysku i znacząco przyspiesza instalację pakietów. Dla deweloperów korzystających z ServBay do pracy z Node.js, opanowanie pnpm pozwala efektywnie zarządzać zależnościami projektowymi.
Zintegrowany pakiet Node.js dostarczany przez ServBay zawiera narzędzie corepack
, które jest oficjalnym eksperymentalnym narzędziem Node.js do zarządzania oraz uruchamiania określonych wersji menedżerów pakietów (takich jak npm
, yarn
czy pnpm
). Zwykle po instalacji Node.js przez ServBay możesz aktywować pnpm właśnie za pośrednictwem poleceń corepack.
Włączanie pnpm
Jeśli zauważysz, że polecenie pnpm
nie jest dostępne od razu po instalacji, najprawdopodobniej nie zostało jeszcze aktywowane przez corepack
. Włącz je, wykonując poniższe kroki:
Otwórz aplikację terminala.
Wpisz poniższe polecenie, aby włączyć pnpm przez corepack:
bashcorepack enable pnpm
1Jeśli polecenie zakończy się sukcesem, zazwyczaj nie zobaczysz żadnego komunikatu. Oznacza to, że corepack dodał polecenie pnpm do systemu.
Zweryfikuj, czy pnpm zostało poprawnie aktywowane i sprawdź jego wersję:
bashpnpm -v
1Po wpisaniu tej komendy powinieneś zobaczyć numer bieżącej wersji pnpm, na przykład:
bash9.1.0
1Jeśli w terminalu pojawi się numer wersji, pnpm jest gotowe do użycia.
Komunikat pobierania corepack
Podczas korzystania z polecenia pnpm
, jeśli pojawi się komunikat przypominający poniższy, oznacza to, że corepack pobiera lub aktualizuje wskazaną wersję pnpm. Jest to zamierzone działanie corepack, dzięki któremu masz pewność używania najnowszej lub wymaganej w projekcie wersji pnpm.
bash
$ pnpm -v
! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-9.0.6.tgz
? Do you want to continue? [Y/n]
1
2
3
2
3
Wpisz Y
i naciśnij Enter, by zezwolić corepack na pobranie i kontynuację polecenia pnpm. Po zakończeniu pobierania polecenie zostanie wykonane normalnie, wyświetlając numer wersji (lub inny wynik w zależności od użytego polecenia pnpm).
Kluczowe zalety pnpm i przykłady użycia
pnpm
został zaprojektowany z myślą o maksymalnej wydajności zarządzania zależnościami. Wszystkie paczki są przechowywane w globalnym, adresowalnym repozytorium, gdzie każda wersja pakietu występuje tylko raz. Gdy projekt potrzebuje konkretnych zależności, pnpm tworzy do nich twarde linki z globalnego magazynu, a katalog node_modules
w projekcie opiera się na strukturze symbolicznych odnośników. W przeciwieństwie do npm i problemu "ghost dependencies", pnpm restrykcyjnie ogranicza dostępność modułów w projekcie – tylko bezpośrednio zadeklarowane zależności mogą być importowane.
Taki sposób działania przynosi następujące korzyści:
- Oszczędność miejsca na dysku: Różne projekty korzystają ze wspólnego magazynu tych samych wersji pakietów, eliminując ich wielokrotne kopiowanie.
- Szybka instalacja: W większości sytuacji zależności są już dostępne globalnie, dzięki czemu pnpm wykonuje tylko szybkie linkowanie, zamiast kopiowania czy pobierania za każdym razem.
- Ścisła struktura zależności: Unikanie problemu ukrytych (ghost) zależności sprawia, że relacje pomiędzy paczkami są przejrzyste i łatwe do zarządzania.
Poniżej znajdziesz kilka najczęściej używanych komend pnpm w środowisku ServBay:
Załóżmy, że Twój projekt znajduje się w podkatalogu w głównym folderze stron ServBay, np. /Applications/ServBay/www/my-servbay-app
.
Instalowanie zależności projektu
Po wejściu do katalogu projektu, użyj polecenia pnpm install
, aby zainstalować wszystkie zależności zdefiniowane w pliku package.json
:
bash
cd /Applications/ServBay/www/my-servbay-app
pnpm install
1
2
2
Pnpm sprawdzi globalny magazyn, pobierze brakujące paczki, a do katalogu projektu node_modules
utworzy do nich odnośniki.
Dodawanie nowej zależności
Aby dodać do projektu nową zależność, np. lodash
:
bash
pnpm add lodash
1
Polecenie pobierze pakiet lodash (jeśli nie ma go jeszcze w globalnym magazynie), utworzy do niego odnośniki i automatycznie zaktualizuje pliki package.json
oraz pnpm-lock.yaml
.
Usuwanie zależności
Aby usunąć niepotrzebny pakiet, np. lodash
:
bash
pnpm remove lodash
1
Pakiet zostanie usunięty z listy zależności projektu, a pliki package.json
i pnpm-lock.yaml
zostaną odpowiednio zaktualizowane.
Uruchamianie skryptów
Pnpm umożliwia również uruchamianie skryptów zdefiniowanych w sekcji scripts
pliku package.json
:
bash
pnpm run dev
# lub w skrócie
pnpm dev
1
2
3
2
3
Uruchamianie poleceń z paczek (pnpx)
Podobnie jak npx
, pnpm oferuje narzędzia pnpx
(lub po prostu pnpm exec
) do wywoływania poleceń znajdujących się w lokalnym katalogu node_modules/.bin
bez konieczności globalnej instalacji:
bash
pnpm exec webpack --version
# lub w skrócie
pnpx webpack --version
1
2
3
2
3
Podsumowanie
Dzięki poleceniu corepack enable pnpm
możesz z łatwością aktywować pnpm w Node.js dostarczanym przez ServBay. Wydajne zarządzanie zależnościami zapewniane przez pnpm nie tylko skraca czas instalacji i usprawnia pracę nad projektami Node.js, ale także pozwala znacząco zaoszczędzić miejsce na dysku. Dla użytkowników ServBay, którzy cenią sobie najwyższą produktywność i komfort pracy, pnpm jest narzędziem zdecydowanie wartym polecenia.