Dwa narzędzia — dwa modele cache'owania
npm prowadzi cache adresowany treścią w %LOCALAPPDATA%\npm-cache: każdy kiedykolwiek pobrany tarball, do tego logi i katalog _npx dla jednorazowych uruchomień pakietów. Do działania zainstalowanych projektów nic z tego nie jest potrzebne — istnieje wyłącznie po to, by przyszłe instalacje były szybsze i działały offline. pnpm działa inaczej: jeden magazyn (w nowych wersjach pod %LOCALAPPDATA%\pnpm\store) trzyma właściwe pliki, a każdy node_modules w każdym projekcie jest poskładany z twardych linków z powrotem do niego. Dlatego projekty na pnpm nie mnożą zużycia dysku jak te na npm — i dlatego sam magazyn rośnie bez limitu: każda nowa wersja pakietu osiada tam na stałe, dopóki nie przyczniesz.
Efekt to znajome zaskoczenie: usuwasz stary projekt, a miejsce nie wraca, bo twarde linki w magazynie trzymają dane przy życiu. Sprawdzać trzeba magazyn, nie foldery projektów.
Komendy czyszczenia, które warto znać
Wszystko tutaj jest bezpieczne z definicji — cache to cache, a narzędzia odbudują go na żądanie:
- npm cache clean --force — ściera cały cache npm; kolejne instalacje pobiorą potrzebne od nowa
- npm cache verify — wariant łagodny: odśmieca i sprawdza integralność, zamiast ścierać wszystko do zera
- pnpm store prune — usuwa z magazynu pakiety, do których żaden projekt już nie linkuje
- Usuń %LOCALAPPDATA%\npm-cache\_npx — jednorazowe cache'e z uruchomień npx, zawsze bezpieczne do skasowania
- npm config set cache D:\dev\npm-cache — przenosi cache z dysku systemowego na dysk z danymi, na stałe
- Najpierw zmierz: skan rozmiarów AppData bije ślepe kasowanie — npm-cache i magazyn pnpm to dwaj zwykli podejrzani
Pułapka twardych linków na NTFS
Oto część, która wszystkich myli: na NTFS dane pliku są uwalniane dopiero wtedy, gdy znika ostatni twardy link do niego. Usuń magazyn pnpm zaraz po wyczyszczeniu node_modules — i odzyskasz tyle, ile oczekiwałeś. Usuń magazyn, kiedy projekty jeszcze linkują do jego plików — i nie uwolnisz niczego: bajty zostają na dysku tak długo, jak istnieje node_modules, a Eksplorator dalej pokazuje wpisy magazynu, które w praktyce są pustymi łuskami. Kolejność ma znaczenie: najpierw usuń projekty (albo ich node_modules), dopiero potem odpal pnpm store prune. Runnery CI i maszyny przewijające przez siebie mnóstwo repozytoriów zyskują na tym najbardziej, jeśli robią to co miesiąc; na laptopie z jednym projektem magazyn rzadko zasługuje na uwagę.
Pytania i odpowiedzi
Czy bezpiecznie usunąć folder npm-cache w AppData?
Tak. Trzyma tylko pobrane tarballe i logi; npm pobierze, co trzeba, przy następnej instalacji. Użyj npm cache clean --force albo po prostu skasuj folder.
Gdzie na Windows leży magazyn pnpm?
W nowych wersjach pnpm — w %LOCALAPPDATA%\pnpm\store; dokładną ścieżkę podpowie pnpm store path. Czyść przez pnpm store prune, nie ręcznym usuwaniem folderów.
Sprawdź warunki przed zakupem
Porównaj czas licencji i liczbę urządzeń. Każdy płatny plan odblokowuje ten sam zestaw narzędzi PRO.
Przeczytaj także
Napisz do nas: [email protected]