Repo Lokal Gendut? Waktunya Diet node_modules! 🏋️♂️

Karena build di GitHub, kita gak perlu menarik node_modules ke komputer. Yuk, pelajari cara mencegah dan membersihkannya dari repositori Git.

Kita semua tahu, folder node_modules itu bisa segede gaban. Kalau folder ini sampai masuk ke repositori Git, proses clone dan pull bisa jadi lemot banget. Padahal, kita cuma butuh kodenya, bukan dependensinya. Mari kita atasi masalah ini dalam dua skenario!

Skenario 1: Pencegahan (Wajib Dilakukan!)

Ini adalah langkah paling krusial. Kita akan "mengajari" Git untuk selamanya mengabaikan node_modules menggunakan file ajaib bernama .gitignore.

Langkah 1: Buat dan Isi .gitignore

Di folder utama proyekmu, buat file baru bernama .gitignore (pakai titik di depan). Lalu, isi dengan daftar file/folder yang mau diabaikan.

# Abaikan folder dependensi (Paling Penting!)
/node_modules
# Abaikan file environment & log
.env
npm-debug.log
# Abaikan folder hasil build
/dist
/build

Langkah 2: "Un-track" node_modules (Jika Terlanjur di-add)

Kalau kamu pernah tidak sengaja menjalankan git add . dan node_modules ikut masuk, kita perlu mengeluarkannya dari pelacakan Git.

# Perintah ini HANYA menghapus dari Git, BUKAN dari komputermu
git rm -r --cached node_modules

Langkah 3: Simpan Perubahanmu

Terakhir, commit .gitignore dan perubahan "untracking" tadi agar aturan ini berlaku selamanya.

git add .gitignore
git commit -m "feat: Add .gitignore and untrack node_modules"
git push

Skenario 2: Pengobatan (Jika Repo Sudah Terlanjur Gendut)

Jika node_modules sudah terlanjur masuk ke riwayat commit-commit lama, repo kamu akan tetap besar. Ada dua cara untuk menyembuhkannya.

Opsi A: Cara Cepat & Gampang (Shallow Clone)

Kalau kamu cuma butuh kode versi terbaru dan gak peduli riwayat lama, clone ulang saja repo-mu dengan mode "dangkal".

# Hanya akan menarik 1 commit terakhir, ukurannya jadi super kecil!
git clone --depth 1 https://github.com/user/repo.git
Kelemahan: Kamu tidak bisa melihat atau kembali ke commit-commit lama di komputermu.

Opsi B: Cara "Pembersihan Total" (Menulis Ulang Sejarah)

Ini adalah operasi tingkat lanjut untuk menghapus node_modules dari seluruh riwayat Git secara permanen. Lakukan dengan hati-hati!

PERINGATAN KERAS:
  • Wajib Backup! Buat salinan folder proyekmu dulu.
  • Operasi ini akan mengubah riwayat commit. Semua anggota tim harus clone ulang.
  • Ini adalah operasi yang "merusak" (destructive).

Cara modern untuk ini adalah menggunakan git-filter-repo.

# 1. Install tool-nya (jika belum ada)
pip3 install git-filter-repo
# 2. Jalankan perintah pembersih di dalam folder repo-mu
git filter-repo --path node_modules --invert-paths
# 3. Dorong paksa riwayat baru ke GitHub
git push origin --force --all

Setelah ini, repositorimu akan "sembuh" dan ukurannya menyusut drastis. Semua anggota tim harus menghapus folder lama mereka dan melakukan git clone yang baru.