Jak na Macu smazat node_modules bez ztráty projektu
Tým AskClean · Aktualizováno 2026-11-02
Složku node_modules můžete smazat, pokud jsou package.json, správný lockfile, zdrojové soubory a konfigurace v bezpečí a všechny závislosti lze stále stáhnout nebo sestavit. Nejprve změřte jeden projekt a zastavte procesy, které jeho závislosti používají. Poté přesuňte do Koše jen node_modules, závislosti obnovte správcem balíčků, který projekt používá, a ověřte sestavení, testy i spuštění. Nezaměňujte node_modules se sdílenou mezipamětí npm: mají jiné umístění, účel i cenu obnovy.

Oddělte závislosti od projektu a mezipaměti npm
node_modules je nainstalovaný strom závislostí jednoho projektu – nejsou to jeho zdrojové soubory ani sdílená mezipaměť stažených balíčků npm v ~/.npm. Obnovit ho lze jen tehdy, když zůstanou package.json, správný lockfile, soubory workspace, .npmrc, záplaty (patches) a konfigurace. Smazáním nadřazené složky projektu, zdrojových souborů nebo lockfilu překročíte bezpečnou hranici; vyčištění mezipaměti npm je samostatná operace, která dopadá na více projektů.
Ověřte obnovitelnost a změřte velikost
V kořeni projektu spusťte pwd, ověřte package.json a očekávaný lockfile a zkontrolujte git status a pole packageManager. npm v12 už nečte npm-shrinkwrap.json: pokud je tento shodně formátovaný soubor jediným lockfilem starého projektu, přejmenujte ho na package-lock.json; existující package-lock.json ale nikdy nepřepisujte a případný rozpor obou souborů řešte jako samostatnou, zkontrolovanou změnu. Ověřte také přístup k soukromým registrům, k závislostem z Gitu a file:, k místním workspace, externím souborům a nástrojům pro sestavení nativních modulů. Velikost zjistíte příkazem du -sh ./node_modules. Lockfile určuje konkrétní verze závislostí, není ale kopií balíčků ani zárukou, že budou dál dostupné.
- Spusťte pwd a ověřte package.json, správný lockfile a konfiguraci workspace; všechny změny, které ukazuje git status, bezpečně zazálohujte.
- Zkontrolujte pole packageManager, verzi nástroje a přístup k soukromým registrům, Gitu, místním závislostem a externím artefaktům.
- Spusťte du -sh ./node_modules, zapište si velikost a zastavte všechny procesy, které složku používají.
- Do Koše přesuňte jen node_modules tohoto projektu a závislosti obnovte z kořene připnutou verzí správce balíčků.
- Spusťte zdokumentované sestavení, testy a aplikaci; teprve po úspěchu vysypte Koš a znovu zkontrolujte volné místo.
Nepovažujte node_modules za bezpodmínečně obnovitelné. Místní oprava přímo v node_modules, soukromý balíček, který už nelze stáhnout, nedostupný commit v Gitu, chybějící workspace nebo sada nástrojů pro nativní sestavení mohou způsobit, že samotný lockfile nestačí.
Odstraňte pouze jednu ověřenou složku
Zastavte vývojové servery, testy běžící v režimu sledování (watch), editory, které právě instalují, a správce balíčků. Ověřte, že vybraná položka se jmenuje node_modules a leží přímo ve správném projektu, a do Koše přesuňte jen tuto složku. Mazání v Terminálu příkazem rm -rf ./node_modules Koš obchází a nelze ho vrátit; nesestavujte proto hromadný příkaz z neověřeného výstupu příkazu find, ze zástupných znaků ani z proměnných, které mohou být prázdné. V rámci stejného kroku nemažte lockfile, mezipaměť npm ani sdílené úložiště správce balíčků.
Obnovte správným nástrojem a ověřte projekt
U projektu npm se směrodatným package-lock.json použijte npm ci. V ostatních projektech použijte připnutou verzi správce balíčků a režim, který brání změně lockfilu, například pnpm install --frozen-lockfile, yarn install --immutable, yarn install --frozen-lockfile nebo bun install --frozen-lockfile. Monorepo obnovujte z kořene podle jeho konfigurace workspace. Koš vysypte až po úspěšné instalaci, sestavení, testech a spuštění. Pokud instalace selže, vraťte složku z Koše a řešte přihlašovací údaje, síť, verzi běhového prostředí nebo sadu nástrojů; nové stahování a kompilace mohou být nákladné.
Co lze odstranit a kolik stojí obnova
Najděte na Macu velké složky node_modules, chraňte zdrojové soubory i lockfile, mažte závislosti po projektech a obnovte je přes npm, pnpm, Yarn či Bun.
| Položka nebo rozhodnutí | Kde zkontrolovat | Důsledek odstranění |
|---|---|---|
| Oddělte závislosti od projektu a mezipaměti npm | projekt/node_modules | node_modules je nainstalovaný strom závislostí jednoho projektu – nejsou to jeho zdrojové soubory ani sdílená mezipaměť stažených balíčků npm v ~/.npm. |
| Ověřte obnovitelnost a změřte velikost | package.json + lockfile + konfigurace workspace | V kořeni projektu spusťte pwd, ověřte package.json a očekávaný lockfile a zkontrolujte git status a pole packageManager. |
| Odstraňte pouze jednu ověřenou složku | Koš / nová instalace správcem balíčků | Zastavte vývojové servery, testy běžící v režimu sledování (watch), editory, které právě instalují, a správce balíčků. |
| Obnovte správným nástrojem a ověřte projekt | sestavení + testy + spuštění aplikace | U projektu npm se směrodatným package-lock.json použijte npm ci. |
Časté dotazy
Je bezpečné smazat node_modules?
Obvykle ano, pokud zachováte zdrojové soubory, konfiguraci, package.json a správný lockfile a ověříte, že jsou všechny závislosti dostupné. Dokud nová instalace neskončí, projekt nepůjde spustit ani sestavit. Přesuňte jednu ověřenou složku do Koše, závislosti nainstalujte, otestujte projekt a Koš vysypte, až vše funguje.
Mám spolu s node_modules smazat package-lock.json?
Ne. package-lock.json je vstupem pro npm ci a zachovává konkrétní řešení závislostí. npm v12 už npm-shrinkwrap.json nečte; pokud jde o jediný lockfile starého projektu, přejmenujte ho na package-lock.json, ale nikdy nepřepisujte soubor, který už pod tímto názvem existuje.
Jsou node_modules a mezipaměť npm totéž?
Ne. node_modules patří jednomu projektu, zatímco ~/.npm je sdílené úložiště stažených dat. Po odstranění první položky musíte obnovit daný projekt, vyčištění druhé prodraží budoucí instalace ve více projektech.
Zdroje