github/gitignore · Node.gitignore

Modèle .gitignore Node.js expliqué

Explique règle par règle pourquoi Node.gitignore ignore node_modules, les logs, les artefacts de build, .env et les caches d'outils, et récapitule les points d'attention sur les lockfiles et Yarn Berry.

Ouvrir dans le générateur Ouvrir avec macOS, VisualStudioCode, Nextjs, JetBrains

Node.gitignore est le modèle destiné aux projets JavaScript/TypeScript qui installent leurs dépendances avec npm, Yarn ou pnpm. Il ne vise pas un seul framework : il rassemble largement les dossiers de cache et de build créés par les outils de l'écosystème comme Next.js, Nuxt, Gatsby, SvelteKit, VitePress, Docusaurus ou Serverless.

L'essentiel tient en trois points : les dépendances qui réapparaissent à chaque installation (node_modules/), les logs et fichiers d'exécution produits pendant le fonctionnement, et les fichiers de variables d'environnement qu'il serait gênant de commiter (.env). À l'inverse, package.json et le lockfile ne sont pas ignorés par ce modèle : ce sont des fichiers à commiter.

Explication règle par règle

MotifCe qui est ignoré et pourquoi
node_modules/jspm_packages/web_modules/bower_componentsRépertoires de dépendancesIls peuvent être recréés à tout moment avec npm install, comptent des dizaines de milliers de fichiers et contiennent des binaires natifs propres à chaque système d'exploitation : réutilisés tels quels dans un autre environnement, ils cassent plutôt qu'ils n'aident. Comme le motif n'a pas de barre oblique, les node_modules des sous-paquets d'un monorepo sont aussi concernés.
logs*.lognpm-debug.log*yarn-debug.log*yarn-error.log*report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.jsonLogs et rapports de diagnosticCe sont les logs de débogage laissés par le gestionnaire de paquets en cas d'échec et les rapports de diagnostic de Node.js (process.report). Ils contiennent l'environnement et les chemins de la personne qui a lancé la commande et sont recréés à chaque fois : aucune raison de les garder dans l'historique.
pids*.pid*.pid.lockcoverage*.lcov.nyc_outputlib-covArtefacts d'exécution et de couvertureFichiers d'ID de processus et résultats de couverture de tests. La couverture est recalculée à chaque passage de la CI ; la garder dans le dépôt ne fait que multiplier les conflits.
distout.next.nuxt.output.svelte-kit/build/Release*.tsbuildinfoRésultats de buildCe sont les sorties des bundlers et des frameworks. *.tsbuildinfo contient les informations de build incrémental de TypeScript. Les motifs sans / final comme dist ou out ignorent aussi les fichiers portant ce nom : si vos sources contiennent un tel fichier, restreignez la règle, par exemple en /dist/.
.env.env.*!.env.exampleFichiers de variables d'environnementCes fichiers contiennent des clés d'API et des mots de passe de base de données. Les variantes comme .env.local ou .env.production sont bloquées par .env.*, tandis que .env.example, qui ne liste que les clés sans valeurs, est réinclus avec ! pour que l'équipe sache quelles variables sont nécessaires.
.npm.eslintcache.stylelintcache.cache.parcel-cache.vite/.pnpm-storeCaches d'outilsCaches utilisés par les linters, bundlers et gestionnaires de paquets pour aller plus vite. Ils se recréent automatiquement si on les supprime ; leur contenu diffère d'une personne à l'autre, donc les commiter génère sans cesse des modifications inutiles.
.pnp.*.yarn/*!.yarn/patches!.yarn/plugins!.yarn/releases!.yarn/sdks!.yarn/versionsYarn Berry (2+)La structure exclut uniquement le contenu de .yarn/ (.yarn/*) puis réinclut avec ! les sous-dossiers à partager. Si l'on avait exclu le répertoire lui-même avec .yarn/, git n'examinerait pas son contenu et les règles ! seraient sans effet.

Points d'attention en pratique

Modèle d'origine

Node.gitignore63 règles
# 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/

Source des modèles : github/gitignore/Node.gitignore @356fd7b (2026-09-11) · CC0-1.0

Modèles utilisés ensemble

Autres modèles expliqués