AskCleanAskClean

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

Tým AskClean · Aktualizováno 2026-08-05

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í; soubory projektu, lockfile 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ěť. Ani npm-shrinkwrap.json není mezipaměť, npm v12 jej však už nečte. Pokud jde o jediný lockfile starého projektu, přejmenujte tento shodně formátovaný soubor před opětovnou 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 spusťte npm config get cache místo předpokladu, že se používá ~/.npm. Přesnou vrácenou cestu změřte příkazem du -sh, zastavte aktivní 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, ale platný obsah 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 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 přijímáte nové stahování, 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ě

npm cache clean --force je odůvodněný, když mezipaměť prokazatelně zabírá potřebné místo nebo 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é; nenastavujte volbu force 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 jej se smazáním lockfile 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 lockfile. 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 aktivní mezipaměť npm, nejprve ji ověřte a úplné vyčištění spusťte až po zvážení nákladů na opětovné stahování.

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ěť. Ani npm-shrinkwrap.json není mezipaměť, npm v12 jej však už nečte. Pokud jde o jediný lockfile starého projektu, přejmenujte tento shodně formátovaný soubor před opětovnou instalací pomocí npm v12 na package-lock.json; existující package-lock.json nikdy nepřepisujte.
Najděte, změřte a nejprve ověřtenpm cache verifyZkontrolujte npm --version a spusťte npm config get cache místo předpokladu, že se používá ~/.npm. Přesnou vrácenou cestu změřte příkazem du -sh, zastavte aktivní 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, ale platný obsah ponechá. Po novém měření často zjistíte, že pro běžnou údržbu další zásah není nutný.
Úplné vyčištění spusťte pouze vědoměnpm cache clean --forcenpm cache clean --force je odůvodněný, když mezipaměť prokazatelně zabírá potřebné místo nebo 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é; nenastavujte volbu force 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 jej se smazáním lockfile ani node_modules.
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. Otestujte reprezentativní projekt s nezměněnými package.json a lockfile. 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.

Č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 jej pro npm v12 bez přepsání existujícího package-lock.json.

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

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 první podstatnou hlášku a diagnostikujte ji místo dalšího mazání platných stažení.

Zdroje

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