github/gitignore · Node.gitignore

شرح قالب .gitignore لـ Node.js

شرح قاعدة بقاعدة لسبب تجاهل Node.gitignore لمجلد node_modules والسجلات ومخرجات البناء و.env وذاكرات التخزين المؤقت للأدوات، مع ملاحظات حول ملفات القفل (lockfile) وYarn Berry.

فتح في المولّد فتح مع macOS, VisualStudioCode, Nextjs, JetBrains

Node.gitignore قالب لمشاريع JavaScript/TypeScript التي تثبّت الاعتماديات عبر npm أو Yarn أو pnpm. لا يخص إطار عمل واحدًا، بل يجمع على نطاق واسع مجلدات التخزين المؤقت والبناء التي تنشئها أدوات المنظومة مثل Next.js وNuxt وGatsby وSvelteKit وVitePress وDocusaurus وServerless.

جوهره ثلاثة أمور: الاعتماديات التي تُنشأ من جديد عند التثبيت (node_modules/)، والسجلات وملفات وقت التشغيل الناتجة أثناء التنفيذ، وملفات متغيرات البيئة التي يُسبب إيداعها مشكلات (.env). في المقابل، لا يتجاهل هذا القالب package.json وملف القفل، وهي ملفات يجب إيداعها.

شرح القواعد

النمطما الذي يتجاهله ولماذا
node_modules/jspm_packages/web_modules/bower_componentsمجلدات الاعتمادياتيمكن إعادة إنشائها في أي وقت عبر npm install، ويبلغ عدد ملفاتها عشرات الآلاف، وتختلط فيها ملفات ثنائية أصلية خاصة بكل نظام تشغيل، فاستخدامها كما هي في بيئة أخرى يؤدي إلى أعطال. ولأن النمط بلا شرطة مائلة، فإنه يطابق أيضًا node_modules الموجودة في الحزم الفرعية داخل المستودع الأحادي (monorepo).
logs*.lognpm-debug.log*yarn-debug.log*yarn-error.log*report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.jsonالسجلات وتقارير التشخيصسجلات التصحيح التي يتركها مدير الحزم عند الفشل، وتقارير التشخيص في Node.js (process.report). تتضمن بيئة من شغّلها ومساراته، وتُنشأ من جديد كل مرة، فلا سبب لإبقائها في السجل التاريخي.
pids*.pid*.pid.lockcoverage*.lcov.nyc_outputlib-covمخرجات وقت التشغيل والتغطيةملفات معرّفات العمليات ونتائج تغطية الاختبارات. التغطية قيمة تُحسب من جديد في CI كل مرة، فوضعها في المستودع لا يزيد إلا التعارضات.
distout.next.nuxt.output.svelte-kit/build/Release*.tsbuildinfoنتائج البناءمخرجات أدوات التجميع (bundler) والأطر. *.tsbuildinfo معلومات البناء التزايدي في TypeScript. الأنماط التي لا تنتهي بـ / مثل dist وout تتجاهل أيضًا الملفات التي تحمل الاسم نفسه، فإن وُجد في الشيفرة المصدرية ملف بهذا الاسم فيجب تضييق القاعدة إلى شكل مثل /dist/.
.env.env.*!.env.exampleملفات متغيرات البيئةملفات تحوي مفاتيح API وكلمات مرور قواعد البيانات. تُحجب المتغيرات مثل .env.local و.env.production عبر .env.*، ويُعاد تضمين .env.example الذي يسرد أسماء المتغيرات بلا قيم عبر ! ليعرف أعضاء الفريق المتغيرات المطلوبة.
.npm.eslintcache.stylelintcache.cache.parcel-cache.vite/.pnpm-storeذاكرات التخزين المؤقت للأدواتذاكرات مؤقتة تستخدمها أدوات الفحص (linter) والتجميع ومديرو الحزم لتسريع العمل. تُعاد إنشاؤها تلقائيًا إذا حُذفت، ويختلف محتواها من شخص لآخر، فإيداعها يولّد تغييرات غير ضرورية باستمرار.
.pnp.*.yarn/*!.yarn/patches!.yarn/plugins!.yarn/releases!.yarn/sdks!.yarn/versionsYarn Berry (الإصدار 2 فأحدث)بنية تستبعد محتوى .yarn/ فقط (.yarn/*) ثم تعيد المجلدات الفرعية التي تحتاج إلى مشاركة عبر !. لو استُبعد المجلد نفسه عبر .yarn/ لما نظر git داخله، ولما عملت قواعد !.

ملاحظات عملية

القالب الأصلي

Node.gitignoreالقواعد: 63 سطرًا
# 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/

مصدر القوالب: github/gitignore/Node.gitignore @356fd7b (2026-09-11) · CC0-1.0

قوالب تُستخدم معه

شروح قوالب أخرى