pnpm vs npm: czym naprawdę się różnią

pnpm vs npm

pnpm vs npm: przechowywanie, lockfile, workspace, mapa poleceń | We.Inc

Jak pnpm i npm przechowują pakiety, blokują wersje i obsługują monorepo, tłumacz poleceń npm na pnpm z wyszukiwarką oraz dokładne kroki bezpiecznego przeniesienia projektu.

npm kopiuje każdy pakiet do node_modules każdego projektu i spłaszcza strukturę. pnpm trzyma na dysku jeden magazyn adresowany treścią, tworzy z niego twarde dowiązania do plików i umieszcza na najwyższym poziomie node_modules tylko Twoje bezpośrednie zależności. To oszczędza miejsce na dysku i uniemożliwia kodowi importowanie pakietów, których nigdy nie zadeklarował. Większość poleceń ma bezpośrednie odpowiedniki.

Najważniejsze różnice

Oba narzędzia czytają ten sam package.json i instalują z tego samego rejestru, więc wybór dotyczy struktury katalogów, szybkości ponownych instalacji, narzędzi do monorepo i rygoru. Poniżej znajdziesz, jak każde z nich przechowuje pakiety, tłumacza poleceń, które już znasz, oraz kroki przeniesienia istniejącego projektu z npm na pnpm.

Najczęściej zadawane pytania

Czy pnpm jest szybszy od npm?

pnpm często ponownie wykorzystuje pliki, które ma już w magazynie, co pomaga przy kolejnych instalacjach na tym samym komputerze. Szybkość zależy od stanu cache, sieci i wielkości projektu, więc zmierz czas obu na własnym projekcie zamiast polegać na opublikowanym benchmarku.

Czy mogę używać pnpm w projekcie z package-lock.json?

Tak. Uruchom pnpm import, aby utworzyć pnpm-lock.yaml z package-lock.json, npm-shrinkwrap.json lub yarn.lock, a potem usuń stary lockfile i node_modules i uruchom pnpm install.

Dlaczego po przejściu na pnpm moja aplikacja nie może znaleźć modułu?

Twój kod lub jakaś zależność importuje pakiet, którego nie ma w jej własnym package.json. Płaska struktura npm ukrywała ten błąd. Dodaj brakujący pakiet jako zależność tego, co go importuje.

Czy pnpm wymaga zainstalowanego Node.js?

Dokumentacja instalacji pnpm opisuje pnpm 12 jako natywny plik wykonywalny, który do własnego działania nie potrzebuje Node.js. Skrypty Twojego projektu oczywiście nadal potrzebują Node.js.

Którego powinien używać początkujący?

npm, bo jest dostarczany z Node.js i używa go prawie każdy tutorial. Przejdź na pnpm, gdy prowadzisz monorepo, masz wiele projektów na jednym komputerze lub chcesz bardziej rygorystycznej struktury node_modules.

Jak każde narzędzie przechowuje pakiety

Workspace i monorepo

Przenieś projekt z npm na pnpm

Kroki migracji

pnpm import odczytuje lockfile npm, więc zachowujesz wersje, które już przetestowałeś. Uruchom testy przed commitem.

Każdy pasujący tu katalog staje się pakietem workspace. Umieść plik w katalogu głównym repozytorium.

Zależność od lokalnego pakietu

workspace:* zawsze wskazuje na lokalną kopię ui zamiast wersji z rejestru.

Tłumacz poleceń npm na pnpm

Wpisz polecenie npm

npm install -D vite

Odpowiednik w pnpm

Brak bezpośredniego odpowiednika. Większość innych poleceń npm ma w pnpm tę samą nazwę.

Polecenia npm i ich odpowiedniki w pnpm

Kopiuj

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony