Näin poistat node_modules-kansion Macissa projektia vaarantamatta
AskClean-tiimi · Päivitetty 2026-08-05
Voit poistaa node_modules-kansion, jos package.json, oikea lukitustiedosto ja kaikki tarvittavat riippuvuudet ovat yhä saatavilla. Mittaa projekti, pysäytä aktiiviset prosessit ja siirrä Roskakoriin vain tarkistettu riippuvuuskansio. Asenna sitten riippuvuudet samalla paketinhallinnalla ja tyhjennä Roskakori vasta, kun koonti, testit ja sovellus toimivat.

Erota node_modules itse projektista
node_modules sisältää projektin asennetun riippuvuuspuun ja voidaan oikeissa oloissa luoda uudelleen. Poiston jälkeen projekti ei käynnisty eikä rakennu ennen uutta asennusta. package.json, lukitustiedostot, lähdekoodi, asetukset, patchit, workspace-tiedostot ja Git-historia ovat uudelleenrakennuksen lähtötietoja, eikä niitä saa poistaa. Myös npm:n jaettu välimuisti polussa ~/.npm on eri tallennusluokka.
Varmista, että riippuvuudet voi todella palauttaa
Lukitustiedosto tekee uudelleenasennuksesta ennakoitavamman, mutta ei ole pakettien varmuuskopio. Tarkista paketinhallinta ja sen versio sekä pääsy yksityisiin rekistereihin, VPN:ään, Git- ja file:-riippuvuuksiin, paikallisiin workspace-paketteihin, ulkoisiin latauksiin ja natiivimoduulien työkaluketjuihin. npm v12 ei enää lue npm-shrinkwrap.json-tiedostoa. Jos se on projektin ainoa lukitustiedosto eikä package-lock.json-tiedostoa ole, nimeä se samassa tiedostomuodossa uudelleen komennolla mv npm-shrinkwrap.json package-lock.json. Älä koskaan korvaa olemassa olevaa package-lock.json-tiedostoa. Vain node_modules-kansioon tehdyt muutokset katoavat poistossa.
- Suorita projektijuuressa pwd ja du -sh ./node_modules ja kirjaa myös macOS:n vapaa tila.
- Tarkista package.json, oikea lukitustiedosto, workspace-asetukset ja paikalliset muutokset. Jos npm-shrinkwrap.json on projektin ainoa lukitustiedosto eikä package-lock.json-tiedostoa ole, suorita ennen npm v12:n käyttöä mv npm-shrinkwrap.json package-lock.json; älä koskaan korvaa olemassa olevaa tiedostoa.
- Varmista pääsy yksityisiin rekistereihin, Git- ja file:-riippuvuuksiin, paikallisiin paketteihin, ulkoisiin latauksiin ja käännöstyökaluihin ja pysäytä kaikki node_modules-kansiota käyttävät prosessit.
- Siirrä Roskakoriin vain tarkistettu node_modules-kansio ja asenna riippuvuudet uudelleen projektin oikeasta juuresta sen omalla paketinhallinnalla ja lukitustiedostolla.
- Suorita koonti, testit, lint-tarkistus ja sovelluksen käynnistys, mittaa tila uudelleen ja tyhjennä Roskakori vasta niiden jälkeen.
Älä käytä node_modules-kansiota paketin tai käsin tehdyn korjauksen ainoana kopiona. Jos täsmällistä riippuvuutta ei enää voi ladata eikä sitä ole arkistoitu muualla, poisto voi tehdä vanhasta projektista käyttökelvottoman.
Poista täsmälleen yksi tarkistettu riippuvuuskansio
Siirrä Finderissa Roskakoriin vain vahvistetun projektin node_modules-kansio, älä koskaan sen yläpuolella olevaa projektikansiota. rm -rf ./node_modules ohittaa Roskakorin eikä ole peruttavissa, joten tarkista projektijuuri uudelleen komennolla pwd. Käytä package-lock.json-tiedoston kanssa komentoa npm ci tai projektin omaa lukitustiedoston muuttamisen estävää asennustapaa: pnpm install --frozen-lockfile, yarn install --immutable, Yarn Classicissa yarn install --frozen-lockfile tai bun install --frozen-lockfile. Käsittele monorepoa yhtenä riippuvuusjärjestelmänä juuren lukitustiedostosta alkaen.
Asenna uudelleen ja varmista koko projekti
Onnistunut asennus ei yksin todista projektin palautuneen. Suorita dokumentoidut koonnit, testit, lint-tarkistukset ja käynnistys; natiivimoduulit ja elinkaariskriptit voivat rikkoutua työkaluketjun muutoksen vuoksi. Palautuskustannukseen kuuluvat lataaminen, purkaminen, linkitys ja joskus kääntäminen. Jos tarkistus epäonnistuu, palauta kansio Roskakorista ja selvitä käyttöoikeudet, verkko, versiot ja lukitustiedosto ennen seuraavan projektin siivousta.
Poiston rajat ja palauttamisen kustannukset
Etsi suuret node_modules-kansiot, suojaa lähdekoodi ja lukitustiedostot, poista riippuvuudet projektikohtaisesti ja asenna ne turvallisesti uudelleen npm:llä, pnpm:llä, Yarnilla tai Bunilla.
| Kohde tai toiminto | Tarkistuspaikka tai -komento | Seuraus |
|---|---|---|
| Erota node_modules itse projektista | projektin node_modules-kansio | node_modules sisältää projektin asennetun riippuvuuspuun ja voidaan oikeissa oloissa luoda uudelleen. Poiston jälkeen projekti ei käynnisty eikä rakennu ennen uutta asennusta. package.json, lukitustiedostot, lähdekoodi, asetukset, patchit, workspace-tiedostot ja Git-historia ovat uudelleenrakennuksen lähtötietoja, eikä niitä saa poistaa. Myös npm:n jaettu välimuisti polussa ~/.npm on eri tallennusluokka. |
| Varmista, että riippuvuudet voi todella palauttaa | package.json + lukitustiedosto + workspace-määritykset | Lukitustiedosto tekee uudelleenasennuksesta ennakoitavamman, mutta ei ole pakettien varmuuskopio. Tarkista paketinhallinta ja sen versio sekä pääsy yksityisiin rekistereihin, VPN:ään, Git- ja file:-riippuvuuksiin, paikallisiin workspace-paketteihin, ulkoisiin latauksiin ja natiivimoduulien työkaluketjuihin. npm v12 ei enää lue npm-shrinkwrap.json-tiedostoa. Jos se on projektin ainoa lukitustiedosto eikä package-lock.json-tiedostoa ole, nimeä se samassa tiedostomuodossa uudelleen komennolla mv npm-shrinkwrap.json package-lock.json. Älä koskaan korvaa olemassa olevaa package-lock.json-tiedostoa. Vain node_modules-kansioon tehdyt muutokset katoavat poistossa. |
| Poista täsmälleen yksi tarkistettu riippuvuuskansio | Roskakori / uudelleenasennus paketinhallinnalla | Siirrä Finderissa Roskakoriin vain vahvistetun projektin node_modules-kansio, älä koskaan sen yläpuolella olevaa projektikansiota. rm -rf ./node_modules ohittaa Roskakorin eikä ole peruttavissa, joten tarkista projektijuuri uudelleen komennolla pwd. Käytä package-lock.json-tiedoston kanssa komentoa npm ci tai projektin omaa lukitustiedoston muuttamisen estävää asennustapaa: pnpm install --frozen-lockfile, yarn install --immutable, Yarn Classicissa yarn install --frozen-lockfile tai bun install --frozen-lockfile. Käsittele monorepoa yhtenä riippuvuusjärjestelmänä juuren lukitustiedostosta alkaen. |
| Asenna uudelleen ja varmista koko projekti | koonti + testit + sovelluksen käynnistys | Onnistunut asennus ei yksin todista projektin palautuneen. Suorita dokumentoidut koonnit, testit, lint-tarkistukset ja käynnistys; natiivimoduulit ja elinkaariskriptit voivat rikkoutua työkaluketjun muutoksen vuoksi. Palautuskustannukseen kuuluvat lataaminen, purkaminen, linkitys ja joskus kääntäminen. Jos tarkistus epäonnistuu, palauta kansio Roskakorista ja selvitä käyttöoikeudet, verkko, versiot ja lukitustiedosto ennen seuraavan projektin siivousta. |
UKK
Onko node_modules-kansion poistaminen turvallista Macissa?
Yleensä on, jos package.json, oikea lukitustiedosto, workspace-tiedostot, lähdekoodi ja kaikki pakettilähteet ovat tallella. Projekti ei kuitenkaan toimi ennen onnistunutta uudelleenasennusta ja tarkistusta.
Poistanko package-lock.jsonin yhdessä node_modules-kansion kanssa?
Et. package-lock.json tarvitaan ennakoitavaan npm-asennukseen. npm v12 ei enää lue npm-shrinkwrap.json-tiedostoa. Jos se on vanhan projektin ainoa lukitustiedosto eikä package-lock.json-tiedostoa ole, nimeä se uudelleen komennolla mv npm-shrinkwrap.json package-lock.json. Älä koskaan korvaa olemassa olevaa package-lock.json-tiedostoa.
Ovatko node_modules ja npm-välimuisti sama asia?
Eivät. node_modules on yhden projektin asennettu riippuvuuspuu. npm:n jaettu välimuisti on tavallisesti polussa ~/.npm. Toisen poistaminen ei poista toista.
Lähteet