هيكل مشروع Next.js

توفر هذه الصفحة نظرة عامة على هيكل مشروع تطبيق Next.js. وهي تغطي الملفات والمجلدات الرئيسية، وملفات التكوين، واتفاقيات التوجيه داخل مجلدي app و pages.

انقر على أسماء الملفات والمجلدات لمعرفة المزيد عن كل اتفاقية.

المجلدات الرئيسية

تُستخدم المجلدات الرئيسية لتنظيم الكود والأصول الثابتة لتطبيقك.

Route segments to path segments
appموجه التطبيق (App Router)
pagesموجه الصفحات (Pages Router)
publicالأصول الثابتة التي سيتم تقديمها
srcمجلد مصدر التطبيق الاختياري

الملفات الرئيسية

تُستخدم الملفات الرئيسية لتكوين تطبيقك، وإدارة التبعيات، وتشغيل البرمجيات الوسيطة، ودمج أدوات المراقبة، وتحديد متغيرات البيئة.

Next.js
next.config.jsملف تكوين Next.js
package.jsonتبعيات المشروع والنصوص البرمجية
instrumentation.tsملف OpenTelemetry والأدوات (Instrumentation)
middleware.tsبرمجية وسيطة لطلبات Next.js
.envمتغيرات البيئة
.env.localمتغيرات البيئة المحلية
.env.productionمتغيرات بيئة الإنتاج
.env.developmentمتغيرات بيئة التطوير
.eslintrc.jsonملف تكوين ESLint
.gitignoreملفات ومجلدات Git لتجاهلها
next-env.d.tsملف تعريف TypeScript لـ Next.js
tsconfig.jsonملف تكوين TypeScript
jsconfig.jsonملف تكوين JavaScript

اتفاقيات التوجيه في app

تستخدم اتفاقيات الملفات التالية لتحديد المسارات وإدارة البيانات الوصفية في موجه app.

ملفات التوجيه

layout.js .jsx .tsxالتخطيط (Layout)
page.js .jsx .tsxالصفحة (Page)
loading.js .jsx .tsxواجهة التحميل (Loading UI)
not-found.js .jsx .tsxواجهة غير موجود (Not found UI)
error.js .jsx .tsxواجهة الخطأ (Error UI)
global-error.js .jsx .tsxواجهة الخطأ العامة (Global error UI)
route.js .tsنقطة نهاية API
template.js .jsx .tsxتخطيط معاد تقديمه
default.js .jsx .tsxصفحة احتياطية للمسار الموازي

المسارات المتداخلة

folderمقطع المسار (Route segment)
folder/folderمقطع مسار متداخل (Nested route segment)

المسارات الديناميكية

[folder]مقطع مسار ديناميكي (Dynamic route segment)
[...folder]مقطع مسار شامل (Catch-all route segment)
[[...folder]]مقطع مسار شامل اختياري (Optional catch-all route segment)

مجموعات المسارات والمجلدات الخاصة

(folder)تجميع المسارات دون التأثير على التوجيه
_folderاستبعاد المجلد وجميع المقاطع الفرعية من التوجيه

المسارات المتوازية والمقاطعة

@folderفتحة مسماة (Named slot)
(.)folderمقاطعة نفس المستوى
(..)folderمقاطعة مستوى واحد أعلى
(..)(..)folderمقاطعة مستويين أعلى
(...)folderمقاطعة من الجذر (Root)

اتفاقيات ملفات البيانات الوصفية

أيقونات التطبيق

favicon.icoملف الأيقونة المفضلة (Favicon)
icon.ico .jpg .jpeg .png .svgملف أيقونة التطبيق
icon.js .ts .tsxأيقونة التطبيق المولدة
apple-icon.jpg .jpeg, .pngملف أيقونة Apple
apple-icon.js .ts .tsxأيقونة Apple المولدة

صور Open Graph و Twitter

opengraph-image.jpg .jpeg .png .gifملف صورة Open Graph
opengraph-image.js .ts .tsxصورة Open Graph المولدة
twitter-image.jpg .jpeg .png .gifملف صورة Twitter
twitter-image.js .ts .tsxصورة Twitter المولدة

تحسين محركات البحث (SEO)

sitemap.xmlملف خريطة الموقع (Sitemap)
sitemap.js .tsخريطة الموقع المولدة
robots.txtملف robots.txt
robots.js .tsملف robots.txt المولد

اتفاقيات التوجيه في pages

تستخدم اتفاقيات الملفات التالية لتحديد المسارات في موجه pages.

ملفات خاصة

_app.js .jsx .tsxتطبيق مخصص (Custom App)
_document.js .jsx .tsxمستند مخصص (Custom Document)
_error.js .jsx .tsxصفحة خطأ مخصصة
404.js .jsx .tsxصفحة خطأ 404
500.js .jsx .tsxصفحة خطأ 500

المسارات

اتفاقية المجلد
index.js .jsx .tsxالصفحة الرئيسية
folder/index.js .jsx .tsxصفحة متداخلة
اتفاقية الملف
index.js .jsx .tsxالصفحة الرئيسية
file.js .jsx .tsxصفحة متداخلة

المسارات الديناميكية

اتفاقية المجلد
[folder]/index.js .jsx .tsxمقطع مسار ديناميكي
[...folder]/index.js .jsx .tsxمقطع مسار شامل
[[...folder]]/index.js .jsx .tsxمقطع مسار شامل اختياري
اتفاقية الملف
[file].js .jsx .tsxمقطع مسار ديناميكي
[...file].js .jsx .tsxمقطع مسار شامل
[[...file]].js .jsx .tsxمقطع مسار شامل اختياري