Jak na Macu smazat node_modules bez ztráty projektu
Tým AskClean · Aktualizováno 2026-08-05
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, obnovte závislosti správcem balíčků určeným pro daný projekt a ověřte sestavení, testy i spuštění.

Oddělte závislosti od projektu a mezipaměti npm
node_modules je nainstalovaný strom závislostí jednoho projektu, nikoli jeho zdrojové soubory ani sdílená mezipaměť npm pro stahování v ~/.npm. Obnovit jej lze jen se zachovanými package.json, správným lockfile, soubory workspace, .npmrc, záplatami a konfigurací. Smazání nadřazené složky, zdrojových souborů nebo lockfile překračuje bezpečnou hranici; vyčištění mezipaměti npm je samostatná operace s dopadem na více projektů.
Ověřte obnovitelnost a změřte velikost
V kořeni projektu spusťte pwd, potvrďte package.json a očekávaný lockfile, zkontrolujte git status a pole packageManager. npm v12 už nečte npm-shrinkwrap.json. Pokud je tento shodně formátovaný soubor jediným lockfile starého projektu, přejmenujte jej na package-lock.json; existující package-lock.json nikdy nepřepisujte a případný rozpor obou souborů vyřešte jako samostatnou kontrolovanou změnu. Ověřte také přístup k soukromým registrům, závislostem z Gitu a file:, 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í, ale není kopií balíčků ani zárukou jejich dostupnosti.
- Spusťte pwd a potvrďte package.json, správný lockfile a konfiguraci workspace; všechny změny zobrazené příkazem git status bezpečně zazálohujte.
- Zkontrolujte pole packageManager, verzi nástroje a přístup k soukromým registrům, Git, místním závislostem a externím artefaktům.
- Spusťte du -sh ./node_modules, zapište velikost a zastavte všechny procesy, které složku používají.
- Přesuňte do Koše pouze node_modules tohoto projektu a obnovte je z kořene určenou připnutou verzí správce balíčků.
- Spusťte dokumentované sestavení, testy a aplikaci; až po úspěchu vysypte Koš a znovu zkontrolujte volné místo.
Nepovažujte node_modules za bezpodmínečně obnovitelné. Místní oprava, 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 v režimu průběžného sledování, editory provádějící instalaci a správce balíčků. Ověřte, že vybraná položka se jmenuje node_modules a jejím rodičem je správný projekt, a přesuňte pouze tuto složku do Koše. rm -rf ./node_modules Koš obchází a je nevratný; nevytvářejte proto hromadný příkaz z neověřeného výstupu find, zástupného znaku ani proměnné. Současně 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 a režim bránící změně lockfile, 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í. Při chybě může být nutné složku obnovit a opravit přihlašovací údaje, síť, verzi prostředí či sadu nástrojů; nové stažení a kompilace mohou být nákladné.
Co lze odstranit a kolik stojí obnova
Najděte velké složky node_modules, zachovejte zdrojové soubory a lockfile, odstraňte závislosti jen z vybraného projektu a bezpečně je obnovte.
| 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, nikoli jeho zdrojové soubory ani sdílená mezipaměť npm pro stahování v ~/.npm. Obnovit jej lze jen se zachovanými package.json, správným lockfile, soubory workspace, .npmrc, záplatami a konfigurací. Smazání nadřazené složky, zdrojových souborů nebo lockfile překračuje bezpečnou hranici; vyčištění mezipaměti npm je samostatná operace s dopadem na více projektů. |
| Ověřte obnovitelnost a změřte velikost | package.json + lockfile + konfigurace workspace | V kořeni projektu spusťte pwd, potvrďte package.json a očekávaný lockfile, zkontrolujte git status a pole packageManager. npm v12 už nečte npm-shrinkwrap.json. Pokud je tento shodně formátovaný soubor jediným lockfile starého projektu, přejmenujte jej na package-lock.json; existující package-lock.json nikdy nepřepisujte a případný rozpor obou souborů vyřešte jako samostatnou kontrolovanou změnu. Ověřte také přístup k soukromým registrům, závislostem z Gitu a file:, 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í, ale není kopií balíčků ani zárukou jejich dostupnosti. |
| Odstraňte pouze jednu ověřenou složku | Koš / opětovná instalace správcem balíčků | Zastavte vývojové servery, testy v režimu průběžného sledování, editory provádějící instalaci a správce balíčků. Ověřte, že vybraná položka se jmenuje node_modules a jejím rodičem je správný projekt, a přesuňte pouze tuto složku do Koše. rm -rf ./node_modules Koš obchází a je nevratný; nevytvářejte proto hromadný příkaz z neověřeného výstupu find, zástupného znaku ani proměnné. Současně 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 | sestavení + testy + spuštění aplikace | 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 a režim bránící změně lockfile, 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í. Při chybě může být nutné složku obnovit a opravit přihlašovací údaje, síť, verzi prostředí či sadu nástrojů; nové stažení a kompilace mohou být nákladné. |
Časté dotazy
Je bezpečné smazat node_modules?
Obvykle ano, pokud zachováte zdrojové soubory, konfiguraci, package.json a správný lockfile a potvrdíte dostupnost všech závislostí. Projekt nebude možné spustit ani sestavit, dokud opětovná instalace neskončí.
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 jej 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. Odstranění první položky vyžaduje obnovu daného projektu, vyčištění druhé prodraží budoucí instalace ve více projektech.
Zdroje