AskClean

Jak bezpečně vyčistit mezipaměť npm na Macu

Tým AskClean · Aktualizováno 2026-11-02

Spusťte npm config get cache, změřte uvedenou složku a před odstraněním použijte npm cache verify. Po npm cache clean --force budou další instalace balíčky znovu stahovat; příkaz však nemaže node_modules, package.json ani lockfile. Úplné vyčištění má smysl jen při změřeném nedostatku místa nebo potvrzené chybě samotné mezipaměti.

Balíčky procházejí kruhovým úložištěm mezipaměti npm označeným štítem, zatímco složky a zápisník projektu zůstávají stranou
Mezipaměť npm uchovává opakovaně použitelná stažení; manifesty projektů, lockfily a nainstalované node_modules jsou samostatná data.

Rozlište mezipaměť, závislosti a soubory projektu

npm uchovává sdílená stažená data v obsahově adresovaném úložišti, ve výchozím stavu v ~/.npm, aktivní cestu však může změnit konfigurace. node_modules je nainstalovaný strom závislostí jednoho projektu, zatímco package.json a package-lock.json popisují stav projektu; nic z toho není mezipaměť. Mezipamětí není ani npm-shrinkwrap.json, npm v12 ho ale už nečte. Pokud jde o jediný lockfile starého projektu, přejmenujte tento shodně formátovaný soubor před novou instalací pomocí npm v12 na package-lock.json; existující package-lock.json nikdy nepřepisujte.

Najděte, změřte a nejprve ověřte

Zkontrolujte npm --version a místo předpokladu, že se používá ~/.npm, spusťte npm config get cache. Přesnou vrácenou cestu změřte příkazem du -sh, zastavte běžící procesy npm install, npm ci, npm exec i publikování a poté spusťte npm cache verify. Tento příkaz ověří integritu a odstraní nepotřebná data, platný obsah ale ponechá. Po novém měření často zjistíte, že pro běžnou údržbu další zásah není nutný.

  1. Spusťte npm --version a npm config get cache a ujistěte se, že výsledek ukazuje na mezipaměť, nikoli na složku projektu.
  2. Přesnou vrácenou cestu změřte příkazem du -sh a zapište si dostupné místo na Macu.
  3. Zastavte procesy npm, ponechte package.json a lockfile beze změny a spusťte npm cache verify.
  4. Pokud je úplné vyčištění stále odůvodněné a nové stahování vám nevadí, spusťte npm cache clean --force.
  5. Mezipaměť znovu ověřte a změřte, zkontrolujte volné místo a sestavte jeden projekt beze změny grafu závislostí.

Nevkládejte neověřenou cestu do rm -rf. Tento postup ruční rekurzivní mazání nepotřebuje a chyba v konfiguraci by mohla zasáhnout projekt nebo domovskou složku.

Úplné vyčištění spusťte pouze vědomě

Příkaz npm cache clean --force má smysl, když mezipaměť prokazatelně zabírá potřebné místo nebo když npm cache verify hlásí problém této vrstvy, který nedokázal vyřešit. Přepínač --force je povinný, protože úplné odstranění bývá zbytečné; volbu force nenastavujte globálně. Příkaz odstraní sdílená stažená data, takže další instalace budou pomalejší a budou potřebovat síť, přihlašovací údaje i dostupné artefakty. Práce offline může přestat fungovat. Nekombinujte ho se smazáním lockfilu ani node_modules.

Ověřte získané místo a skutečnou příčinu chyby

Po vyčištění znovu spusťte npm config get cache, případně npm cache verify, změřte stejnou cestu a skutečné volné místo v macOS. Otestujte reprezentativní projekt s nezměněnými package.json a lockfilem. Pokud se chyba vrátí, čištění neopakujte: příčina může být v přihlášení k registru, proxy, síti, nedostupné verzi, požadavcích Node.js, konfliktu peer dependencies, nativní kompilaci nebo skriptu životního cyklu balíčku. Mezipaměť není trvalý archiv; kritické artefakty uchovávejte v registru nebo záloze.

Co lze odstranit a kolik stojí obnova

Najděte a změřte mezipaměť npm na Macu, nejdřív ji ověřte přes npm cache verify, čistěte ji jen v odůvodněných případech a chraňte node_modules i lockfile.

Položka nebo rozhodnutíKde zkontrolovatDůsledek odstranění
Rozlište mezipaměť, závislosti a soubory projektunpm config get cachenpm uchovává sdílená stažená data v obsahově adresovaném úložišti, ve výchozím stavu v ~/.npm, aktivní cestu však může změnit konfigurace. node_modules je nainstalovaný strom závislostí jednoho projektu, zatímco package.json a package-lock.json popisují stav projektu; nic z toho není mezipaměť.
Najděte, změřte a nejprve ověřtenpm cache verifyZkontrolujte npm --version a místo předpokladu, že se používá ~/.npm, spusťte npm config get cache.
Úplné vyčištění spusťte pouze vědoměnpm cache clean --forcePříkaz npm cache clean --force má smysl, když mezipaměť prokazatelně zabírá potřebné místo nebo když npm cache verify hlásí problém této vrstvy, který nedokázal vyřešit.
Ověřte získané místo a skutečnou příčinu chybyinstalace + kontrola režimu offline / soukromého registruPo vyčištění znovu spusťte npm config get cache, případně npm cache verify, změřte stejnou cestu a skutečné volné místo v macOS.

Časté dotazy

Mám použít npm cache verify, nebo npm cache clean --force?

Nejprve npm cache verify: ověří integritu a odstraní nepotřebná data, aniž by zahodil platná stažení. npm cache clean --force použijte až při změřeném nedostatku místa nebo potvrzeném problému mezipaměti.

Smaže vyčištění mezipaměti npm node_modules nebo package-lock.json?

Ne. Mezipaměť je sdílené úložiště stažených dat; node_modules, package.json a package-lock.json patří projektu. Během této operace je nemažte ani nepřepisujte. Pokud má starý projekt jen npm-shrinkwrap.json, přejmenujte ho pro npm v12 na package-lock.json, ale existující package-lock.json nepřepisujte.

Proč npm hlásí chybu i po vyčištění mezipaměti?

Chyba se nejspíš týká jiné vrstvy: sítě, registru, přihlašovacích údajů, verze Node.js, grafu závislostí, nativní kompilace nebo skriptu životního cyklu balíčku. Uchovejte si první podstatné hlášení a diagnostikujte ho, místo abyste dál mazali platná stažení.

Zdroje

Další návody k úložišti pro vývojáře