Ilustrasi file .gitignore dengan ikon Git

Jaga Repomu Tetap Bersih: Contoh .gitignore Lengkap untuk Node.js

Oleh: FrijalGit, Node.js, Best PracticeUpdate Terakhir: 25 Okt 2025

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 .gitignore ini) berarti setiap kali orang lain atau CI/CD install dependencies, mereka bisa dapat versi paket yang sedikit berbeda (tapi masih sesuai range di package.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: .env dan 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! ✨