Slik sletter du node_modules på Mac uten å miste prosjektet
AskClean-teamet · Oppdatert 2026-08-05
Du kan slette et prosjekts node_modules når package.json, riktig låsefil, workspace-oppsett og alle nødvendige avhengigheter fortsatt er tilgjengelige. Mål hvert prosjekt, stopp aktive prosesser, flytt bare avhengighetsmappen til Papirkurven, installer med samme pakkebehandler, og kontroller bygg, tester og oppstart før Papirkurven tømmes. node_modules er ikke det samme som den delte npm-cachen.

Skill node_modules fra selve prosjektet
node_modules inneholder prosjektets installerte avhengighetstre og kan bygges opp igjen når alle inndata fortsatt finnes. Prosjektet kan verken kjøre eller bygges før den nye installasjonen er fullført. package.json, package-lock.json eller en annen låsefil, workspace-filer, .npmrc, patcher, byggeskript, kildekode og Git-historikk er selve oppskriften og må beholdes. Den delte npm-cachen ligger normalt i ~/.npm og er en egen lagringskategori; sletting av den fjerner ikke <project>/node_modules, og omvendt.
Kontroller at avhengighetene faktisk kan bygges opp igjen
En låsefil gjør en ny installasjon mer forutsigbar, men er ingen sikkerhetskopi av pakkene. Kontroller pakkebehandleren og versjonen prosjektet angir, private pakkeregistre, VPN, Git- og file:-avhengigheter, lokale workspace-pakker, eksterne nedlastinger og native verktøykjeder. npm v12 leser ikke npm-shrinkwrap.json. Hvis den er prosjektets eneste låsefil og package-lock.json ikke finnes, endrer du filnavnet til package-lock.json før du bruker npm v12. Overskriv aldri en eksisterende package-lock.json; avklar eventuelle forskjeller som en egen, gjennomgått kodeendring. Endringer som bare finnes i node_modules, går tapt ved sletting.
- Kjør pwd og du -sh ./node_modules i prosjektroten, og noter også den ledige plassen i macOS.
- Kontroller package.json, riktig låsefil, workspace-oppsett og lokale endringer med git status. Hvis npm-shrinkwrap.json er den eneste låsefilen og package-lock.json ikke finnes, endrer du filnavnet til package-lock.json før du bruker npm v12; overskriv aldri en eksisterende fil.
- Les packageManager-feltet, kontroller riktig verktøyversjon og tilgang til private pakkeregistre, Git- og file:-avhengigheter, lokale pakker, eksterne nedlastinger og byggeverktøy, og stopp alle prosesser som bruker node_modules.
- Flytt bare prosjektets node_modules til Papirkurven, og installer fra riktig rot med npm ci, pnpm install --frozen-lockfile, yarn install --immutable (eller yarn install --frozen-lockfile for Yarn Classic) eller bun install --frozen-lockfile.
- Kjør prosjektets dokumenterte bygg, tester, lint-kontroller og oppstart, mål den ledige plassen på nytt, og tøm Papirkurven først når alle kontrollene er bestått.
Ikke bruk node_modules som eneste kopi av en avhengighet eller manuell rettelse. Hvis den nøyaktige pakken ikke kan hentes og verken pakken eller rettelsen er bevart et annet sted, kan sletting gjøre prosjektet umulig å bygge opp igjen.
Fjern nøyaktig én kontrollert avhengighetsmappe
Arbeid fra en bekreftet prosjektrot, og flytt bare den valgte node_modules-mappen til Papirkurven – aldri det overordnede kodearkivet. rm -rf ./node_modules omgår Papirkurven og kan ikke angres; kontroller først roten med pwd. Installer fra roten som eier låsefilen, med npm ci når package-lock.json er styrende, eller prosjektets låste installasjonsflyt for pnpm, Yarn eller Bun. Behandle et monorepo som ett sammenhengende avhengighetssystem med utgangspunkt i låsefilen i roten.
Kontroller både prosjektet og den frigjorte plassen
En vellykket installasjon beviser ikke alene at prosjektet er gjenopprettet. Kjør dokumenterte bygg, tester, lint-kontroller og oppstart; native tillegg og livsløpsskript kan fortsatt feile etter en endring i verktøykjeden. Sammenlign den faktisk ledige plassen i macOS i stedet for å anta at hele den målte mappestørrelsen ble frigjort. Hvis kontrollene mislykkes, gjenoppretter du mappen fra Papirkurven og undersøker tilgang, nettverk, verktøyversjoner og låsefil før du rydder flere prosjekter.
Slettingsgrenser og gjenopprettingskostnader
Finn store node_modules-mapper, behold kildekode og låsefiler, fjern avhengigheter prosjektvis og installer dem trygt på nytt med npm, pnpm, Yarn eller Bun.
| Element eller handling | Kontroller med eller på | Konsekvens |
|---|---|---|
| Skill node_modules fra selve prosjektet | <project>/node_modules | node_modules inneholder prosjektets installerte avhengighetstre og kan bygges opp igjen når alle inndata fortsatt finnes. Prosjektet kan verken kjøre eller bygges før den nye installasjonen er fullført. package.json, package-lock.json eller en annen låsefil, workspace-filer, .npmrc, patcher, byggeskript, kildekode og Git-historikk er selve oppskriften og må beholdes. Den delte npm-cachen ligger normalt i ~/.npm og er en egen lagringskategori; sletting av den fjerner ikke <project>/node_modules, og omvendt. |
| Kontroller at avhengighetene faktisk kan bygges opp igjen | package.json + låsefil + workspace-oppsett | En låsefil gjør en ny installasjon mer forutsigbar, men er ingen sikkerhetskopi av pakkene. Kontroller pakkebehandleren og versjonen prosjektet angir, private pakkeregistre, VPN, Git- og file:-avhengigheter, lokale workspace-pakker, eksterne nedlastinger og native verktøykjeder. npm v12 leser ikke npm-shrinkwrap.json. Hvis den er prosjektets eneste låsefil og package-lock.json ikke finnes, endrer du filnavnet til package-lock.json før du bruker npm v12. Overskriv aldri en eksisterende package-lock.json; avklar eventuelle forskjeller som en egen, gjennomgått kodeendring. Endringer som bare finnes i node_modules, går tapt ved sletting. |
| Fjern nøyaktig én kontrollert avhengighetsmappe | Papirkurven / ny installasjon med pakkebehandleren | Arbeid fra en bekreftet prosjektrot, og flytt bare den valgte node_modules-mappen til Papirkurven – aldri det overordnede kodearkivet. rm -rf ./node_modules omgår Papirkurven og kan ikke angres; kontroller først roten med pwd. Installer fra roten som eier låsefilen, med npm ci når package-lock.json er styrende, eller prosjektets låste installasjonsflyt for pnpm, Yarn eller Bun. Behandle et monorepo som ett sammenhengende avhengighetssystem med utgangspunkt i låsefilen i roten. |
| Kontroller både prosjektet og den frigjorte plassen | bygg + tester + lint + appstart | En vellykket installasjon beviser ikke alene at prosjektet er gjenopprettet. Kjør dokumenterte bygg, tester, lint-kontroller og oppstart; native tillegg og livsløpsskript kan fortsatt feile etter en endring i verktøykjeden. Sammenlign den faktisk ledige plassen i macOS i stedet for å anta at hele den målte mappestørrelsen ble frigjort. Hvis kontrollene mislykkes, gjenoppretter du mappen fra Papirkurven og undersøker tilgang, nettverk, verktøyversjoner og låsefil før du rydder flere prosjekter. |
Vanlige spørsmål
Er det trygt å slette node_modules på Mac?
Vanligvis, når package.json, riktig låsefil, workspace-filer, kildekode, konfigurasjon og alle nødvendige pakkekilder er intakte. Prosjektet kan ikke kjøre eller bygges før den nye installasjonen og kontrollene er fullført, så behold mappen i Papirkurven frem til da.
Skal package-lock.json slettes sammen med node_modules?
Nei. package-lock.json er inndata til en forutsigbar npm-installasjon. npm v12 leser ikke npm-shrinkwrap.json. Hvis en eldre npm-shrinkwrap.json er prosjektets eneste låsefil og package-lock.json ikke finnes, endrer du filnavnet til package-lock.json; du må aldri overskrive en eksisterende låsefil.
Er node_modules det samme som npm-cachen?
Nei. node_modules er installerte avhengigheter for ett prosjekt, mens npm-cachen normalt ligger i ~/.npm og lagrer delte nedlastinger. De har ulike plasseringer, virkninger og gjenopprettingskostnader.
Kilder