
Jaga Repomu Tetap Bersih: Contoh .gitignore Lengkap untuk Node.js
Mantap, Fakhrul 👍. Biar folder seperti .npm-cache/_cacache atau node_modules tidak ikut ke‑commit lagi ke Git repo kamu, penting banget pakai file .gitignore yang bener. File ini ngasih tau Git file atau folder mana aja yang harus diabaikan.
Berikut contoh .gitignore standar yang sudah siap pakai dan cukup lengkap untuk project Node.js:
Contoh .gitignore untuk Node.js
# =========================================
# Node.js dependencies & cache
# =========================================
node_modules/
.npm/
.npm-cache/
.pnpm-debug.log*
.yarn-cache/
.yarn-integrity
.yarnrc.yml
.pnp.*
.pnp.js
# =========================================
# Logs
# =========================================
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# =========================================
# Runtime data
# =========================================
pids
*.pid
*.seed
*.pid.lock
# =========================================
# Coverage & testing
# =========================================
coverage/
.nyc_output/
*.lcov
# =========================================
# Build output
# =========================================
dist/
build/
.cache/
.next/
out/
.tmp/
temp/
tmp/
# =========================================
# Environment & secrets
# =========================================
.env
.env.test
.env.production
.env.local
.env.*.local
# =========================================
# OS generated files
# =========================================
.DS_Store
Thumbs.db
# =========================================
# Editor & IDE
# =========================================
.vscode/
.idea/
*.swp
*.swo
*.swn
*.swm
# =========================================
# Optional: lockfiles (pilih sesuai kebutuhan)
# =========================================
# package-lock.json
# yarn.lock
# pnpm-lock.yaml
Catatan Penting
- Wajib:
node_modules/dan.npm-cache/→ Ini dia biang kerok utama yang bikin repo jadi berat dan lambat kalau sampai ikut ke‑commit. Isinya cuma hasil download/cache yang bisa digenerate ulang kapan aja. - Opsional (Lockfiles):
package-lock.json,yarn.lock,pnpm-lock.yaml→ Mengabaikan file lock (#di depannya berarti diabaikan oleh.gitignoreini) berarti setiap kali orang lain atau CI/CD install dependencies, mereka bisa dapat versi paket yang sedikit berbeda (tapi masih sesuai range dipackage.json). Kalau kamu ingin dependency selalu fresh dengan versi patch/minor terbaru, bisa diabaikan. Tapi, kalau kamu butuh reproducible build (hasil build yang pasti sama persis di mana pun), sebaiknya file lock ini tetap di‑commit (hapus tanda#di depannya). Ini praktik yang paling umum dan disarankan. - Tambahan Penting:
.envdan variasinya (.env.local, dll.) → Jangan pernah commit file environment yang berisi credential (API key, password database, dll.) ke repo publik. Bahaya banget! - Build Output: Folder seperti
dist/,build/,.next/(untuk Next.js) berisi hasil kompilasi kode kamu. Ini biasanya tidak perlu di-commit karena bisa digenerate ulang dari source code. Kecuali, memang tujuan kamu mem-publish hasil build-nya (misal ke GitHub Pages). - Lain-lain: Contoh di atas juga mengabaikan file log, data runtime, hasil test coverage, file sistem operasi (
.DS_Store,Thumbs.db), dan folder konfigurasi editor (.vscode/,.idea/) yang umumnya tidak relevan untuk di-commit bareng source code.
Dengan
.gitignore yang rapi seperti ini, kasus folder .npm-cache/_cacache atau node_modules muncul lagi di commit-an Git kamu tidak akan terulang. Repo jadi lebih ringan dan fokus ke source code asli! ✨