AskCleanAskClean

Jak bezpiecznie wyczyścić pamięć podręczną npm na Macu

Zespół AskClean · Zaktualizowano 2026-08-05

Uruchom npm config get cache, zmierz wskazany katalog i przed usuwaniem wykonaj npm cache verify. Po npm cache clean --force późniejsze instalacje będą ponownie pobierać pakiety, ale polecenie nie usuwa node_modules, package.json ani lockfile. Pełne czyszczenie ma sens dopiero przy zmierzonym braku miejsca lub potwierdzonym błędzie samej pamięci podręcznej.

Pakiety przechodzą przez okrągłą pamięć podręczną npm oznaczoną tarczą, a foldery i notatnik projektu pozostają oddzielone obok
Pamięć podręczna npm przechowuje pobrania wielokrotnego użytku; pliki projektu, lockfile i zainstalowane node_modules są osobnymi danymi.

Rozróżnij pamięć podręczną, zależności i pliki projektu

npm przechowuje współdzielone pobrania w magazynie adresowanym zawartością, domyślnie w ~/.npm, lecz konfiguracja może wskazywać inną ścieżkę. node_modules jest zainstalowanym drzewem zależności jednego projektu, natomiast package.json i package-lock.json opisują jego stan — żaden z tych elementów nie jest pamięcią podręczną. npm v12 nie odczytuje już npm-shrinkwrap.json: jeśli jest to jedyny lockfile w starym projekcie, zmień nazwę tego identycznie sformatowanego pliku na package-lock.json. Nie nadpisuj istniejącego package-lock.json; gdy są oba pliki, porównaj i uzgodnij je jako osobną zmianę.

Znajdź, zmierz i najpierw zweryfikuj

Sprawdź npm --version i uruchom npm config get cache zamiast zakładać, że używane jest ~/.npm. Skopiuj zwróconą ścieżkę, potwierdź, że wskazuje pamięć podręczną, ujmij ją w cudzysłów, jeśli zawiera spacje, i zmierz przez du -sh. Zatrzymaj aktywne npm install, npm ci, npm exec i npm publish, po czym uruchom npm cache verify. Polecenie sprawdza integralność i usuwa niepotrzebne dane, zachowując poprawną zawartość. Zmierz ponownie; rutynowa konserwacja często nie wymaga niczego więcej.

  1. Uruchom npm --version oraz npm config get cache i upewnij się, że wynik wskazuje pamięć podręczną, a nie katalog projektu.
  2. Zmierz dokładnie zwróconą ścieżkę przez du -sh, ujmując ją w cudzysłów, jeśli zawiera spacje, i zapisz dostępne miejsce na Macu.
  3. Zatrzymaj procesy npm, zachowaj package.json i lockfile bez zmian, a następnie uruchom npm cache verify.
  4. Jeśli pełne czyszczenie jest nadal uzasadnione i akceptujesz ponowne pobrania, uruchom npm cache clean --force.
  5. Ponownie zweryfikuj i zmierz pamięć podręczną, sprawdź wolne miejsce oraz zbuduj jeden projekt bez zmiany grafu zależności.

Nie wklejaj niezweryfikowanej ścieżki do rm -rf. Ten proces nie wymaga ręcznego usuwania rekursywnego, a pomyłka w konfiguracji mogłaby objąć projekt albo katalog domowy.

Pełne czyszczenie wykonuj tylko świadomie

npm cache clean --force jest uzasadnione, gdy pamięć podręczna rzeczywiście zajmuje potrzebne miejsce albo npm cache verify potwierdził nierozwiązany problem tej warstwy. --force jest wymagane, ponieważ pełne usunięcie zwykle nie jest potrzebne; nie zapisuj opcji force jako ustawienia globalnego npm. Polecenie usuwa współdzielone pobrania, więc następne instalacje będą wolniejsze, wymagają sieci, poświadczeń i dostępnych artefaktów, a praca offline może przestać być możliwa. Nie łącz tego z usuwaniem lockfile ani node_modules.

Sprawdź odzyskane miejsce i przyczynę błędu

Po czyszczeniu ponownie uruchom npm config get cache, opcjonalnie npm cache verify, zmierz tę samą ścieżkę i rzeczywiste wolne miejsce w macOS. Przetestuj reprezentatywny projekt z niezmienionymi package.json i lockfile. Jeśli błąd wraca, nie powtarzaj czyszczenia: przyczyną może być uwierzytelnianie w rejestrze, proxy, sieć, niedostępna wersja, wymagania Node.js, konflikt zależności równorzędnych, kompilacja natywna lub skrypt cyklu życia. Pamięć podręczna nie jest trwałym archiwum pakietów; krytyczne artefakty przechowuj w rejestrze lub kopii zapasowej.

Co można usunąć i jaki jest koszt odtworzenia

Znajdź i zmierz aktywną pamięć podręczną npm, najpierw ją zweryfikuj, a pełne czyszczenie wykonaj tylko po ocenie kosztu ponownego pobierania.

Element lub decyzjaGdzie sprawdzićSkutek usunięcia
Rozróżnij pamięć podręczną, zależności i pliki projektunpm config get cachenpm przechowuje współdzielone pobrania w magazynie adresowanym zawartością, domyślnie w ~/.npm, lecz konfiguracja może wskazywać inną ścieżkę. node_modules jest zainstalowanym drzewem zależności jednego projektu, natomiast package.json i package-lock.json opisują jego stan — żaden z tych elementów nie jest pamięcią podręczną. npm v12 nie odczytuje już npm-shrinkwrap.json: jeśli jest to jedyny lockfile w starym projekcie, zmień nazwę tego identycznie sformatowanego pliku na package-lock.json. Nie nadpisuj istniejącego package-lock.json; gdy są oba pliki, porównaj i uzgodnij je jako osobną zmianę.
Znajdź, zmierz i najpierw zweryfikujnpm cache verifySprawdź npm --version i uruchom npm config get cache zamiast zakładać, że używane jest ~/.npm. Skopiuj zwróconą ścieżkę, potwierdź, że wskazuje pamięć podręczną, ujmij ją w cudzysłów, jeśli zawiera spacje, i zmierz przez du -sh. Zatrzymaj aktywne npm install, npm ci, npm exec i npm publish, po czym uruchom npm cache verify. Polecenie sprawdza integralność i usuwa niepotrzebne dane, zachowując poprawną zawartość. Zmierz ponownie; rutynowa konserwacja często nie wymaga niczego więcej.
Pełne czyszczenie wykonuj tylko świadomienpm cache clean --forcenpm cache clean --force jest uzasadnione, gdy pamięć podręczna rzeczywiście zajmuje potrzebne miejsce albo npm cache verify potwierdził nierozwiązany problem tej warstwy. --force jest wymagane, ponieważ pełne usunięcie zwykle nie jest potrzebne; nie zapisuj opcji force jako ustawienia globalnego npm. Polecenie usuwa współdzielone pobrania, więc następne instalacje będą wolniejsze, wymagają sieci, poświadczeń i dostępnych artefaktów, a praca offline może przestać być możliwa. Nie łącz tego z usuwaniem lockfile ani node_modules.
Sprawdź odzyskane miejsce i przyczynę błęduinstalacja + sprawdzenie pracy offline/rejestru prywatnegoPo czyszczeniu ponownie uruchom npm config get cache, opcjonalnie npm cache verify, zmierz tę samą ścieżkę i rzeczywiste wolne miejsce w macOS. Przetestuj reprezentatywny projekt z niezmienionymi package.json i lockfile. Jeśli błąd wraca, nie powtarzaj czyszczenia: przyczyną może być uwierzytelnianie w rejestrze, proxy, sieć, niedostępna wersja, wymagania Node.js, konflikt zależności równorzędnych, kompilacja natywna lub skrypt cyklu życia. Pamięć podręczna nie jest trwałym archiwum pakietów; krytyczne artefakty przechowuj w rejestrze lub kopii zapasowej.

FAQ

Czy lepiej uruchomić npm cache verify, czy npm cache clean --force?

Najpierw npm cache verify: sprawdza integralność i usuwa zbędne dane, nie wyrzucając poprawnych pobrań. npm cache clean --force zostaw na zmierzony brak miejsca lub potwierdzony problem pamięci podręcznej.

Czy czyszczenie pamięci podręcznej npm usuwa node_modules lub package-lock.json?

Nie. Pamięć podręczna jest współdzielonym magazynem pobrań, a node_modules, package.json i package-lock.json należą do projektu. Nie usuwaj ani nie przepisuj ich podczas tej operacji.

Dlaczego npm nadal zgłasza błąd po wyczyszczeniu pamięci podręcznej?

Błąd prawdopodobnie dotyczy innej warstwy: sieci, rejestru, poświadczeń, wersji Node.js, grafu zależności, kompilacji natywnej albo skryptu cyklu życia. Zachowaj pierwszy istotny komunikat i diagnozuj go zamiast ponownie usuwać poprawne pobrania.

Źródła

Więcej poradników o danych deweloperskich