AskClean

Slet node_modules på Mac uden at miste dit projekt

AskClean-teamet · Opdateret 2026-11-02

Du kan slette et projekts node_modules, hvis package.json, den rigtige lockfil, workspace-konfigurationen og alle nødvendige pakkekilder stadig er tilgængelige. Mål hvert projekt, stop aktive processer, og flyt kun den kontrollerede node_modules-mappe til papirkurven. Geninstaller med samme pakkehåndtering, og tøm først papirkurven, når build, test og app virker igen. npm's delte downloadcache er en anden kategori med en anden placering og andre omkostninger.

Robotarm løfter en grå afhængighedsblok fra et netværk mod en orange genbrugsbeholder, mens en turkis blok, en plantegning og en lås er beskyttet
Fjern kun den afhængighedsmappe, der kan bygges igen; behold manifest, lockfil, konfiguration og kildekode.

Skeln mellem afhængigheder og projektfiler

node_modules er ét projekts installerede afhængighedstræ. Når mappen er fjernet, kan projektet ikke bygge eller køre, før afhængighederne er installeret igen. package.json, lockfiler, pnpm-workspace.yaml, .npmrc, patches, konfiguration, kildekode og Git-historik er grundlaget for genopbygningen og må ikke slettes. npm's delte downloadcache ligger normalt under ~/.npm; den er ikke en del af node_modules og skal vurderes separat.

Kontroller, at projektet kan genskabes

En lockfil gør geninstallationen mere forudsigelig, men er ikke en sikkerhedskopi af pakkerne. Find projektets pakkehåndtering og version, og kontroller adgangen til private pakkeregistre, VPN, Git- og file:-afhængigheder, lokale workspaces, eksterne downloads og de værktøjer, der skal til for at bygge native moduler. npm v12 læser ikke npm-shrinkwrap.json. Er den projektets eneste lockfil, og findes package-lock.json ikke, kan den omdøbes til package-lock.json, fordi formatet er det samme. Overskriv aldrig en eksisterende package-lock.json; afklar i stedet forskellen som en særskilt, gennemgået ændring.

  1. Gå til projektroden, kør pwd, og kontroller, at det er det rigtige repository.
  2. Bekræft package.json, den rigtige lockfil, packageManager-feltet og workspace-filerne; kontroller git status, og sikkerhedskopier lokale ændringer. Bruger du npm v12, så omdøb kun npm-shrinkwrap.json til package-lock.json, hvis den er projektets eneste lockfil, og package-lock.json ikke findes.
  3. Kontroller pakkehåndteringens version samt adgangen til private pakkeregistre, Git-kilder, lokale pakker, eksterne downloads og byggeværktøjer.
  4. Stop udviklingsservere, test-watchere, installationer startet af editoren og andre processer, der bruger node_modules.
  5. Mål mappen, flyt kun node_modules til papirkurven, geninstaller fra den rigtige rod, og kør projektets build, test, lint og startprocedure, før du tømmer papirkurven.

Brug aldrig node_modules som eneste kopi af en manuel rettelse eller en afhængighed, der ikke kan hentes igen. Det indhold forsvinder ved sletning og kommer ikke tilbage fra package.json eller en lockfil.

Slet kun den bekræftede mappe

Mål fra den kontrollerede projektrod med du -sh ./node_modules, og flyt kun den pågældende mappe til papirkurven i Finder — aldrig den overordnede projektmappe. rm -rf ./node_modules i Terminal går uden om papirkurven og kan ikke fortrydes; kontroller først roden igen med pwd, og brug aldrig ukontrolleret find-output, jokertegn eller en tom variabel som mål. I et monorepo kan node_modules i roden betjene alle workspaces, så hele repoet skal behandles som ét afhængighedssystem.

Geninstaller, test og mål igen

Kør npm ci fra den rod, hvor package-lock.json er autoritativ. Brug ellers repoets arbejdsgang med fastlåst lockfil: f.eks. pnpm install --frozen-lockfile, yarn install --immutable, yarn install --frozen-lockfile for Yarn Classic eller bun install --frozen-lockfile. En vellykket installation er ikke nok: Kør projektets build, test, lint og startprocedure. Fejler noget, kan mappen lægges tilbage fra papirkurven, mens du undersøger adgang, netværk, versioner, native værktøjskæder og lockfilen. Bruger du AskClean, slettes de mapper, du bekræfter, permanent; vil du have mulighed for at fortryde, så flyt mappen til papirkurven i Finder selv.

Beslutningsgrundlag og slettegrænser

Find store node_modules-mapper, beskyt kildekode og lockfiler, fjern afhængigheder projekt for projekt, og geninstaller sikkert med npm, pnpm, Yarn eller Bun.

ElementHer tjekker duKonsekvens og grænser
Skeln mellem afhængigheder og projektfiler<projekt>/node_modulesnode_modules er ét projekts installerede afhængighedstræ.
Kontroller, at projektet kan genskabespackage.json + lockfil + workspace-konfigurationEn lockfil gør geninstallationen mere forudsigelig, men er ikke en sikkerhedskopi af pakkerne.
Slet kun den bekræftede mappepapirkurven / geninstallation med pakkehåndteringenMål fra den kontrollerede projektrod med du -sh ./node_modules, og flyt kun den pågældende mappe til papirkurven i Finder — aldrig den overordnede projektmappe.
Geninstaller, test og mål igenbuild + test + start af appenKør npm ci fra den rod, hvor package-lock.json er autoritativ.

FAQ

Er det sikkert at slette node_modules på en Mac?

Som regel, hvis package.json, den rigtige lockfil, workspace-filer, kildekode, konfiguration og alle nødvendige pakkekilder er intakte. Projektet virker først igen, når geninstallationen og kontrollerne er gennemført. Flyt én kontrolleret mappe til papirkurven, geninstaller og test, og tøm først papirkurven, når projektet virker.

Skal package-lock.json slettes sammen med node_modules?

Nej. package-lock.json er input til en forudsigelig npm-installation og skal bevares. npm v12 læser ikke npm-shrinkwrap.json. Omdøb den kun, hvis den er projektets eneste lockfil, og package-lock.json ikke allerede findes; overskriv aldrig en eksisterende lockfil.

Er node_modules det samme som npm-cachen?

Nej. node_modules er de installerede afhængigheder i ét projekt; ~/.npm er standardplaceringen for en delt downloadcache. Fjerner du den ene, slettes den anden ikke. Vurder dem som to separate opgaver.

Kilder

Flere guider om plads på en udvikler-Mac