.gitignore for Node

Node.js projects: node_modules, npm/yarn/pnpm logs, and build output.

Quick presets

Selected (1)
Node
Your selections never leave your browser. Generation happens entirely client-side.
Raw

22 patterns · 445 B

# Generated by DevZone Tools — https://devzone.tools/tools/gitignore-generator
# Templates: Node
# 2026-04-20

# ---- Node ----
# Node
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-debug.log*
.npm
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
lerna-debug.log*
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
dist/
build/
.cache/
*.tsbuildinfo

What this template ignores

Ignores node_modules/ (installed packages), package manager debug logs, .env files with secrets, compiled dist/build output, and TypeScript build info caches.

Common additions

  • +.env.example — commit this as a template (without real values)
  • +coverage/ — test coverage reports
  • +*.local — local override files

Commonly paired with

Frequently asked questions

Do I need to commit .gitignore?
Yes — .gitignore should be committed to the repository so all collaborators benefit from the same ignore rules.
How do I add custom patterns?
Open your .gitignore file and add the pattern on a new line. Use # for comments, * for wildcards, / to match directories, and ! to un-ignore a previously ignored path.
How do I ignore a file that is already tracked?
Adding a file to .gitignore does not remove it from tracking if it was previously committed. Run: git rm --cached <file> to stop tracking it without deleting the file locally.
Why should I never commit node_modules?
node_modules can contain thousands of files, changes every install, and is fully reproducible from package.json + lockfile. Committing it massively bloats the repo.
Should I commit package-lock.json or yarn.lock?
Yes — always commit lockfiles. They lock exact dependency versions, ensuring consistent installs across machines and CI.

Looking for something else? Browse all templates →