AskClean

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.

Robotická paže přesouvá modulární blok závislostí do oranžové recyklační nádoby, zatímco plán projektu, zámek a chráněný blok zůstávají na stole
Odstraňte jen obnovitelnou složku závislostí – manifest projektu, lockfile, konfiguraci ani zdrojové soubory ne.

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é.

  1. 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.
  2. 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.
  3. Spusťte du -sh ./node_modules, zapište si velikost a zastavte všechny procesy, které složku používají.
  4. 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ů.
  5. 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 zkontrolovatDůsledek odstranění
Oddělte závislosti od projektu a mezipaměti npmprojekt/node_modulesnode_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 velikostpackage.json + lockfile + konfigurace workspaceV 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žkuKoš / 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 projektsestavení + testy + spuštění aplikaceU 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

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