AskCleanAskClean

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

Robotická paže přesouvá modulární blok závislostí do oranžové recyklační nádoby, zatímco schéma projektu, zámek a chráněný blok zůstávají na stole
Odstraňte jen obnovitelnou složku závislostí; schéma projektu, lockfile, konfigurace a zdrojové soubory musí zůstat v bezpečí.

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.

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

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