.gitignore for Node.js + TypeScript

.gitignore for Node.js projects written in TypeScript, covering compiled output and tsbuildinfo caches.

Quick presets

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

27 patterns · 535 B

# Generated by DevZone Tools — https://devzone.tools/tools/gitignore-generator
# Templates: Node, TypeScript
# 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

# ---- TypeScript ----
# TypeScript
*.js
*.js.map
*.d.ts
!src/**/*.d.ts
out/

Why use Node.js + TypeScript together?

TypeScript projects compiled with tsc output JavaScript to dist/ or out/ directories. These compiled files should never be committed — they are fully reproducible from source. The *.tsbuildinfo cache files accelerate incremental compilation but are also machine-specific.

This combination covers the Node.js runtime side (node_modules, .env, package manager logs) and the TypeScript compiler side (dist/, *.js source maps, *.d.ts declarations, *.tsbuildinfo).

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 combine Node and TypeScript?
TypeScript projects compiled with tsc output JavaScript to dist/ or out/ directories. These compiled files should never be committed — they are fully reproducible from source. The *.tsbuildinfo cache files accelerate incremental compilation but are also machine-specific.

Looking for something else? Browse all templates →