Projenizi Kaybetmeden Mac’te node_modules Nasıl Silinir?
AskClean Ekibi · Güncellendi 2026-11-02
package.json ve doğru kilit dosyası yerindeyse ve bağımlılıklar hâlâ indirilebiliyorsa bir projenin node_modules klasörünü silebilirsiniz. Önce her projeyi ölçün, çalışan araçları durdurun ve yalnızca doğruladığınız bağımlılık klasörünü Çöp Sepeti’ne taşıyın. Aynı paket yöneticisiyle yeniden kurun; derleme, test ve uygulama kontrolleri başarıyla bitmeden Çöp Sepeti’ni boşaltmayın.

node_modules ile proje dosyalarını ayırın
node_modules, bir projenin kurulu bağımlılık ağacıdır ve uygun koşullarda yeniden oluşturulabilir. Silindiğinde yeniden kurulum tamamlanana kadar proje çalışmaz ve derlenmez. package.json, kilit dosyaları, kaynak kod, yapılandırma, yamalar, çalışma alanı dosyaları ve Git geçmişi ise yeniden oluşturmanın girdileridir; silinmemelidir. Varsayılan olarak ~/.npm altında bulunan ortak npm indirme önbelleği de node_modules’dan ayrı bir depolama kategorisidir: birini silmek diğerini kaldırmaz.
Bağımlılıkların gerçekten yeniden kurulabildiğini denetleyin
Kilit dosyası kurulumu öngörülebilir kılar ama paketlerin yedeği değildir. Depoda kullanılan paket yöneticisini ve sürümünü, özel registry erişimini, VPN’i, Git ve file: bağımlılıklarını, yerel çalışma alanlarını, harici indirmeleri ve yerel derleme araçlarını doğrulayın. npm v12 artık npm-shrinkwrap.json dosyasını okumaz: eski bir projede yetkili kilit dosyası buysa ve package-lock.json yoksa, aynı biçimdeki bu dosyayı package-lock.json olarak yeniden adlandırın; iki dosya da varsa hiçbirinin üzerine yazmadan hangisinin geçerli olduğunu inceleyin. Yalnızca node_modules içinde elle yaptığınız değişiklikler klasörle birlikte kaybolur ve package.json ya da kilit dosyasından geri gelmez.
- Proje kökünde pwd ve du -sh ./node_modules çalıştırın; macOS’teki boş alanı da kaydedin.
- package.json, doğru kilit dosyası, çalışma alanı yapılandırması ve yerel değişiklikleri denetleyin; eski projede yetkili dosya npm-shrinkwrap.json ise ve package-lock.json yoksa npm v12 kullanmadan önce dosyayı package-lock.json olarak yeniden adlandırın.
- Özel registry’lere, Git ve file: bağımlılıklarına, yerel paketlere, harici indirmelere ve derleme araçlarına erişimi doğrulayın; node_modules’u kullanan süreçleri durdurun.
- Yalnızca doğruladığınız node_modules klasörünü Çöp Sepeti’ne taşıyın ve doğru depo kökünde, sabitlenmiş paket yöneticisiyle kilit dosyasını değiştirmeyen bir yeniden kurulum yapın.
- Derleme, test ve lint akışlarını çalıştırıp uygulamayı başlatın; alanı yeniden ölçün ve ancak bundan sonra Çöp Sepeti’ni boşaltın.
node_modules klasörünü bir paketin veya elle yaptığınız bir düzeltmenin tek kopyası olarak kullanmayın. Tam bağımlılık artık indirilemiyor ve başka bir yerde arşivlenmemişse silme işlemi eski projeyi yeniden kurulamaz hâle getirebilir.
Yalnızca doğrulanmış bağımlılık klasörünü kaldırın
Finder’da yalnızca hedef projenin node_modules klasörünü Çöp Sepeti’ne taşıyın; üstteki depo klasörünü seçmeyin. Terminal’deki rm -rf ./node_modules komutu Çöp Sepeti’ni atlar ve geri alınamaz; kullanacaksanız önce pwd ile proje kökünü yeniden doğrulayın. package-lock.json yetkiliyse aynı kökte npm ci çalıştırın; pnpm için pnpm install --frozen-lockfile, güncel Yarn için yarn install --immutable (Yarn Classic için yarn install --frozen-lockfile), Bun için bun install --frozen-lockfile kullanın. Monorepo’yu kök kilit dosyasıyla yönetilen tek bir bağımlılık sistemi olarak ele alın. AskClean ise onayladığınız klasörleri Çöp Sepeti’ne taşımaz, kalıcı olarak siler; geri dönüş payı istiyorsanız klasörü Finder’da kendiniz Çöp Sepeti’ne taşıyın.
Yeniden kurulumu ve projeyi bütünüyle doğrulayın
Kurulumun tamamlanması uygulamanın geri geldiğini tek başına kanıtlamaz. Belgelenmiş derleme, test, lint ve başlatma akışlarını çalıştırın; yerel olarak derlenen eklentiler ve yaşam döngüsü betikleri araç zinciri değiştiğinde yine hata verebilir. Kurtarma zaman ister: paketler indirilir, açılır, bağlantılar kurulur ve gerekirse derleme yapılır. İşlem başarısız olursa klasörü Çöp Sepeti’nden geri yükleyin; başka projeleri silmeden önce erişim, ağ, sürüm ve kilit dosyası sorununu tanılayın.
Silme sınırları ve kurtarma maliyetleri
Büyük node_modules klasörlerini bulun, kaynak kodu ve kilit dosyasını koruyun, bağımlılıkları proje proje silip npm, pnpm, Yarn veya Bun ile yeniden kurun.
| Öğe veya işlem | Nerede ya da neyle denetlenir | Sonuç |
|---|---|---|
| node_modules ile proje dosyalarını ayırın | <proje>/node_modules | node_modules, bir projenin kurulu bağımlılık ağacıdır ve uygun koşullarda yeniden oluşturulabilir. |
| Bağımlılıkların gerçekten yeniden kurulabildiğini denetleyin | package.json + kilit dosyası + çalışma alanı yapılandırması | Kilit dosyası kurulumu öngörülebilir kılar ama paketlerin yedeği değildir. |
| Yalnızca doğrulanmış bağımlılık klasörünü kaldırın | Çöp Sepeti / paket yöneticisiyle yeniden kurulum | Finder’da yalnızca hedef projenin node_modules klasörünü Çöp Sepeti’ne taşıyın; üstteki depo klasörünü seçmeyin. |
| Yeniden kurulumu ve projeyi bütünüyle doğrulayın | derleme + test + uygulamayı başlatma | Kurulumun tamamlanması uygulamanın geri geldiğini tek başına kanıtlamaz. |
SSS
Mac’te node_modules silmek güvenli mi?
Genellikle evet; package.json, doğru kilit dosyası, çalışma alanı dosyaları, kaynak kod ve tüm bağımlılık kaynakları korunuyorsa yeniden oluşturulabilir. Ancak yeniden kurulum ve proje kontrolleri bitene kadar proje çalışmaz. Doğruladığınız tek bir klasörü Çöp Sepeti’ne taşıyın, yeniden kurup test edin ve Çöp Sepeti’ni ancak proje çalıştıktan sonra boşaltın.
package-lock.json dosyasını node_modules ile birlikte silmeli miyim?
Hayır. package-lock.json, yeniden üretilebilir npm kurulumunun girdisidir. npm v12 artık npm-shrinkwrap.json dosyasını okumaz; eski bir projede yetkili kilit dosyası yalnızca buysa onu package-lock.json olarak yeniden adlandırın, var olan bir package-lock.json dosyasının üzerine yazmayın.
node_modules ile npm önbelleği aynı şey mi?
Hayır. node_modules tek bir projenin kurulu bağımlılık ağacıdır; npm’in ortak önbelleği ise varsayılan olarak ~/.npm altındadır. Birini silmek diğerini kaldırmaz ve kurtarma maliyetleri farklı kapsamları etkiler.
Kaynaklar