github/gitignore · Node.gitignore

Penjelasan template .gitignore Node.js

Menjelaskan per aturan mengapa Node.gitignore mengabaikan node_modules, log, hasil build, .env, dan berbagai cache alat, serta hal yang perlu diperhatikan terkait lockfile dan Yarn Berry.

Buka di generator Buka bersama macOS, VisualStudioCode, Nextjs, JetBrains

Node.gitignore adalah template untuk proyek JavaScript/TypeScript yang memasang dependensi dengan npm, Yarn, atau pnpm. Template ini tidak ditujukan untuk satu framework tertentu, melainkan mengumpulkan secara luas folder cache dan build yang dibuat oleh alat ekosistem seperti Next.js, Nuxt, Gatsby, SvelteKit, VitePress, Docusaurus, dan Serverless.

Intinya ada tiga: dependensi (node_modules/) yang muncul lagi saat dipasang, log dan file runtime yang muncul saat berjalan, dan file variabel lingkungan (.env) yang berbahaya jika di-commit. Sebaliknya, package.json dan lockfile tidak diabaikan oleh template ini dan harus di-commit.

Penjelasan per aturan

PolaApa yang diabaikan dan mengapa
node_modules/jspm_packages/web_modules/bower_componentsDirektori dependensiBisa dibuat ulang kapan saja dengan npm install, jumlah filenya bisa puluhan ribu, dan berisi biner native khusus sistem operasi sehingga justru rusak jika dipakai apa adanya di lingkungan lain. Karena polanya tanpa garis miring, node_modules di paket turunan monorepo juga ikut tertangkap.
logs*.lognpm-debug.log*yarn-debug.log*yarn-error.log*report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.jsonLog dan laporan diagnostikLog debug yang ditinggalkan package manager saat gagal dan laporan diagnostik Node.js (process.report). Isinya memuat lingkungan dan path orang yang menjalankannya, dan selalu dibuat baru, jadi tidak ada alasan menyimpannya di riwayat.
pids*.pid*.pid.lockcoverage*.lcov.nyc_outputlib-covHasil runtime dan coverageFile ID proses dan hasil coverage pengujian. Coverage dihitung ulang di CI setiap kali, sehingga jika disimpan di repositori hanya menambah konflik.
distout.next.nuxt.output.svelte-kit/build/Release*.tsbuildinfoHasil buildHasil yang dibuat oleh bundler dan framework. *.tsbuildinfo adalah informasi build inkremental TypeScript. Pola tanpa / di akhir seperti dist dan out juga mengabaikan file dengan nama yang sama, jadi jika ada file bernama demikian di kode sumber, persempit aturannya seperti /dist/.
.env.env.*!.env.exampleFile variabel lingkunganFile yang berisi kunci API dan kata sandi DB. Varian seperti .env.local dan .env.production juga diblokir dengan .env.*, sedangkan .env.example yang hanya berisi daftar kunci tanpa nilai disertakan kembali dengan ! agar anggota tim tahu variabel apa yang dibutuhkan.
.npm.eslintcache.stylelintcache.cache.parcel-cache.vite/.pnpm-storeCache alatCache yang dipakai linter, bundler, dan package manager untuk mempercepat kerja. Jika dihapus akan dibuat ulang otomatis, dan isinya berbeda untuk setiap orang sehingga jika di-commit akan terus memunculkan perubahan yang tidak perlu.
.pnp.*.yarn/*!.yarn/patches!.yarn/plugins!.yarn/releases!.yarn/sdks!.yarn/versionsYarn Berry (2+)Strukturnya hanya mengecualikan isi .yarn/ (.yarn/*) lalu menghidupkan kembali subfolder yang perlu dibagikan dengan !. Jika direktorinya sendiri dikecualikan dengan .yarn/, git tidak melihat isinya sehingga aturan ! tidak berlaku.

Hal yang perlu diperhatikan dalam praktik

Template asli

Node.gitignore63 baris aturan
# Logslogs*.lognpm-debug.log*yarn-debug.log*yarn-error.log*lerna-debug.log*# Diagnostic reports (https://nodejs.org/api/report.html)report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json# Runtime datapids*.pid*.seed*.pid.lock# Directory for instrumented libs generated by jscoverage/JSCoverlib-cov# Coverage directory used by tools like istanbulcoverage*.lcov# nyc test coverage.nyc_output# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files).grunt# Bower dependency directory (https://bower.io/)bower_components# node-waf configuration.lock-wscript# Compiled binary addons (https://nodejs.org/api/addons.html)build/Release# Dependency directoriesnode_modules/jspm_packages/# Snowpack dependency directory (https://snowpack.dev/)web_modules/# TypeScript cache*.tsbuildinfo# Optional npm cache directory.npm# Optional eslint cache.eslintcache# Optional stylelint cache.stylelintcache# Optional REPL history.node_repl_history# Output of 'npm pack'*.tgz# Yarn Integrity file.yarn-integrity# dotenv environment variable files.env.env.*!.env.example# parcel-bundler cache (https://parceljs.org/).cache.parcel-cache# Next.js build output.nextout# Nuxt.js build / generate output.nuxtdist.output# Gatsby files.cache/# Comment in the public line in if your project uses Gatsby and not Next.js# https://nextjs.org/blog/next-9-1#public-directory-support# public# vuepress build output.vuepress/dist# vuepress v2.x temp directory.temp# Sveltekit cache directory.svelte-kit/# vitepress build output**/.vitepress/dist# vitepress cache directory**/.vitepress/cache# Docusaurus cache and generated files.docusaurus# Serverless directories.serverless/# FuseBox cache.fusebox/# DynamoDB Local files.dynamodb/# Firebase cache directory.firebase/# TernJS port file.tern-port# Stores Visual Studio Code versions used for testing Visual Studio Code extensions.vscode-test# pnpm.pnpm-store# yarn v3.pnp.*.yarn/*!.yarn/patches!.yarn/plugins!.yarn/releases!.yarn/sdks!.yarn/versions# Vite filesvite.config.js.timestamp-*vite.config.ts.timestamp-*.vite/

Sumber template: github/gitignore/Node.gitignore @356fd7b (2026-09-11) · CC0-1.0

Template yang sering dipakai bersama

Penjelasan template lainnya