Cara menghapus node_modules di Mac tanpa kehilangan proyek
Tim AskClean · Diperbarui 2026-08-05
Anda dapat menghapus node_modules bila package.json, lockfile yang benar, dan semua sumber dependensi masih tersedia. Ukur setiap proyek lebih dahulu, hentikan proses aktif, lalu pindahkan hanya folder dependensi yang telah diperiksa ke Sampah. Instal ulang dengan manajer paket yang sama dan jangan kosongkan Sampah sebelum perintah build dan test lulus serta aplikasi kembali berjalan.

Bedakan node_modules dari proyek dan cache
node_modules adalah struktur dependensi terpasang untuk satu proyek dan hanya dapat dibangun ulang bila seluruh masukannya masih tersedia. Setelah folder ini dihapus, proyek tidak dapat dijalankan atau di-build sampai instalasi selesai. package.json, lockfile, kode sumber, konfigurasi, patch, berkas workspace, dan riwayat Git adalah input pembangunan ulang—jangan hapus. Cache unduhan bersama npm, biasanya di ~/.npm, merupakan kategori penyimpanan lain dengan cakupan dan biaya pemulihan berbeda.
Pastikan dependensi benar-benar dapat dibangun ulang
Lockfile membuat instalasi lebih dapat diprediksi, tetapi bukan salinan paket. Pastikan manajer paket beserta versinya, lalu simpan package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lock, atau bun.lockb yang dipakai repositori. npm v12 tidak lagi membaca npm-shrinkwrap.json; bila file itu merupakan satu-satunya lockfile dan package-lock.json belum ada, ganti namanya menjadi package-lock.json karena formatnya identik. Jangan pernah menimpa package-lock.json yang sudah ada. Verifikasi juga registry privat, VPN, dependensi Git dan file:, workspace lokal, unduhan eksternal, serta toolchain untuk modul native. Perubahan yang hanya ada di node_modules tidak akan kembali setelah instalasi ulang.
- Dari root proyek, jalankan pwd dan du -sh ./node_modules; catat juga ruang kosong macOS.
- Periksa package.json, lockfile yang benar, konfigurasi workspace, dan perubahan lokal; bila npm-shrinkwrap.json adalah satu-satunya lockfile, ganti namanya menjadi package-lock.json sebelum memakai npm v12 tanpa menimpa file yang sudah ada.
- Pastikan registry privat, dependensi Git dan file:, paket lokal, unduhan eksternal, serta alat build dapat diakses; hentikan semua proses yang memakai node_modules.
- Pindahkan hanya node_modules yang sudah diperiksa ke Sampah, lalu instal ulang dari root yang benar memakai manajer paket dan alur lockfile milik repositori.
- Jalankan perintah build, test, dan lint, lalu buka aplikasinya; ukur ulang ruang dan kosongkan Sampah hanya setelah semua pemeriksaan lulus.
Jangan jadikan node_modules satu-satunya salinan paket atau perbaikan manual. Jika versi dependensi yang persis tidak lagi dapat diambil dan sumbernya tidak tersimpan di tempat lain, penghapusan dapat membuat proyek lama tidak bisa dipulihkan.
Hapus satu folder dependensi yang sudah diperiksa
Dari proyek yang sudah dipastikan, pindahkan hanya node_modules ke Sampah melalui Finder—jangan repositori induknya. rm -rf ./node_modules melewati Sampah dan tidak dapat dibatalkan; pastikan root proyek dengan pwd sebelum mempertimbangkannya. Instal ulang dari root tersebut dengan npm ci jika package-lock.json menjadi acuan, atau gunakan pnpm install --frozen-lockfile, yarn install --immutable, yarn install --frozen-lockfile untuk Yarn Classic, maupun bun install --frozen-lockfile sesuai repositori. Perlakukan monorepo sebagai satu sistem yang diatur oleh lockfile di root.
Instal ulang dan verifikasi seluruh proyek
Instalasi yang selesai belum membuktikan proyek pulih sepenuhnya. Jalankan perintah build, test, lint, dan peluncuran yang didokumentasikan; modul native dan skrip siklus hidup masih dapat gagal setelah perubahan Node.js, macOS, atau toolchain. Pemulihan memerlukan unduhan, ekstraksi, pembuatan tautan dan shim perintah, serta mungkin kompilasi. Jika gagal, pulihkan folder dari Sampah bila masih tersedia, simpan log galat, lalu periksa kredensial, jaringan, versi, dan lockfile sebelum membersihkan proyek lain.
Batas penghapusan dan biaya pemulihan
Temukan folder node_modules besar, lindungi kode sumber dan lockfile, hapus dependensi per proyek, lalu instal ulang dengan aman memakai npm, pnpm, Yarn, atau Bun.
| Item atau tindakan | Tempat memeriksa | Konsekuensi |
|---|---|---|
| Bedakan node_modules dari proyek dan cache | proyek/node_modules | node_modules adalah struktur dependensi terpasang untuk satu proyek dan hanya dapat dibangun ulang bila seluruh masukannya masih tersedia. Setelah folder ini dihapus, proyek tidak dapat dijalankan atau di-build sampai instalasi selesai. package.json, lockfile, kode sumber, konfigurasi, patch, berkas workspace, dan riwayat Git adalah input pembangunan ulang—jangan hapus. Cache unduhan bersama npm, biasanya di ~/.npm, merupakan kategori penyimpanan lain dengan cakupan dan biaya pemulihan berbeda. |
| Pastikan dependensi benar-benar dapat dibangun ulang | package.json + lockfile + konfigurasi workspace | Lockfile membuat instalasi lebih dapat diprediksi, tetapi bukan salinan paket. Pastikan manajer paket beserta versinya, lalu simpan package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lock, atau bun.lockb yang dipakai repositori. npm v12 tidak lagi membaca npm-shrinkwrap.json; bila file itu merupakan satu-satunya lockfile dan package-lock.json belum ada, ganti namanya menjadi package-lock.json karena formatnya identik. Jangan pernah menimpa package-lock.json yang sudah ada. Verifikasi juga registry privat, VPN, dependensi Git dan file:, workspace lokal, unduhan eksternal, serta toolchain untuk modul native. Perubahan yang hanya ada di node_modules tidak akan kembali setelah instalasi ulang. |
| Hapus satu folder dependensi yang sudah diperiksa | Sampah / instal ulang dengan manajer paket | Dari proyek yang sudah dipastikan, pindahkan hanya node_modules ke Sampah melalui Finder—jangan repositori induknya. rm -rf ./node_modules melewati Sampah dan tidak dapat dibatalkan; pastikan root proyek dengan pwd sebelum mempertimbangkannya. Instal ulang dari root tersebut dengan npm ci jika package-lock.json menjadi acuan, atau gunakan pnpm install --frozen-lockfile, yarn install --immutable, yarn install --frozen-lockfile untuk Yarn Classic, maupun bun install --frozen-lockfile sesuai repositori. Perlakukan monorepo sebagai satu sistem yang diatur oleh lockfile di root. |
| Instal ulang dan verifikasi seluruh proyek | build + pengujian + peluncuran aplikasi | Instalasi yang selesai belum membuktikan proyek pulih sepenuhnya. Jalankan perintah build, test, lint, dan peluncuran yang didokumentasikan; modul native dan skrip siklus hidup masih dapat gagal setelah perubahan Node.js, macOS, atau toolchain. Pemulihan memerlukan unduhan, ekstraksi, pembuatan tautan dan shim perintah, serta mungkin kompilasi. Jika gagal, pulihkan folder dari Sampah bila masih tersedia, simpan log galat, lalu periksa kredensial, jaringan, versi, dan lockfile sebelum membersihkan proyek lain. |
FAQ
Apakah aman menghapus node_modules di Mac?
Biasanya aman bila package.json, lockfile yang benar, file workspace, kode sumber, dan seluruh sumber dependensi tetap tersedia. Proyek tidak akan berjalan sampai instalasi ulang dan pemeriksaan selesai.
Haruskah package-lock.json ikut dihapus?
Tidak. package-lock.json adalah input untuk instalasi npm yang dapat diulang. npm v12 tidak lagi membaca npm-shrinkwrap.json; jika file itu satu-satunya lockfile dan package-lock.json belum ada, ganti namanya menjadi package-lock.json tanpa menimpa file lain.
Apakah node_modules sama dengan cache npm?
Tidak. node_modules adalah dependensi terpasang milik satu proyek; cache bersama npm biasanya berada di ~/.npm. Menghapus salah satunya tidak menghapus yang lain.
Sumber