التثبيت
متطلبات النظام:
- Node.js 18.17 أو أحدث.
- أنظمة التشغيل المدعومة: macOS وWindows (بما في ذلك WSL) وLinux.
التثبيت التلقائي
نوصي ببدء تطبيق Next.js جديد باستخدام create-next-app
، والذي يقوم بإعداد كل شيء تلقائيًا لك. لإنشاء مشروع، قم بتنفيذ:
npx create-next-app@latest
عند التثبيت، ستظهر لك المطالبات التالية:
ما هو اسم مشروعك؟ my-app
هل ترغب في استخدام TypeScript؟ لا / نعم
هل ترغب في استخدام ESLint؟ لا / نعم
هل ترغب في استخدام Tailwind CSS؟ لا / نعم
هل ترغب في استخدام مجلد `src/`؟ لا / نعم
هل ترغب في استخدام موجه التطبيق (موصى به)؟ لا / نعم
هل ترغب في تخصيص اسم الاستيراد الافتراضي (@/*)؟ لا / نعم
ما هو اسم الاستيراد الذي تريد تهيئته؟ @/*
بعد المطالبات، سيقوم create-next-app
بإنشاء مجلد باسم مشروعك وتثبيت التبعيات المطلوبة.
إذا كنت جديدًا في Next.js، راجع وثائق هيكل المشروع للحصول على نظرة عامة على جميع الملفات والمجلدات المحتملة في تطبيقك.
معلومة مفيدة:
- يأتي Next.js الآن مع تهيئة افتراضية لـ TypeScript وESLint وTailwind CSS.
- يمكنك اختياريًا استخدام مجلد
src
في جذر مشروعك لفصل كود التطبيق عن ملفات التهيئة.
التثبيت اليدوي
لإنشاء تطبيق Next.js جديد يدويًا، قم بتثبيت الحزم المطلوبة:
npm install next@latest react@latest react-dom@latest
افتح ملف package.json
وأضف السكربتات التالية:
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
}
}
تشير هذه السكربتات إلى مراحل مختلفة من تطوير التطبيق:
dev
: يشغلnext dev
لبدء Next.js في وضع التطوير.build
: يشغلnext build
لبناء التطبيق للاستخدام في الإنتاج.start
: يشغلnext start
لبدء خادم Next.js للإنتاج.lint
: يشغلnext lint
لإعداد تهيئة ESLint المدمجة في Next.js.
إنشاء المجلدات
يستخدم Next.js توجيه نظام الملفات، مما يعني أن المسارات في تطبيقك يتم تحديدها من خلال كيفية تنظيم ملفاتك.
مجلد app
لتطبيقات جديدة، نوصي باستخدام موجه التطبيق. يسمح لك هذا الموجه باستخدام أحدث ميزات React وهو تطور لـ موجه الصفحات بناءً على ملاحظات المجتمع.
قم بإنشاء مجلد app/
، ثم أضف ملف layout.tsx
وملف page.tsx
. سيتم عرض هذه الملفات عندما يزور المستخدم جذر تطبيقك (/
).

قم بإنشاء تخطيط جذر داخل app/layout.tsx
مع العلامات المطلوبة <html>
و<body>
:
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}
أخيرًا، قم بإنشاء صفحة رئيسية app/page.tsx
مع بعض المحتوى الأولي:
export default function Page() {
return <h1>Hello, Next.js!</h1>
}
export default function Page() {
return <h1>Hello, Next.js!</h1>
}
معلومة مفيدة: إذا نسيت إنشاء
layout.tsx
، فسيقوم Next.js تلقائيًا بإنشاء هذا الملف عند تشغيل خادم التطوير باستخدامnext dev
.
تعلم المزيد حول استخدام موجه التطبيق.
مجلد pages
(اختياري)
إذا كنت تفضل استخدام موجه الصفحات بدلاً من موجه التطبيق، يمكنك إنشاء مجلد pages/
في جذر مشروعك.
ثم أضف ملف index.tsx
داخل مجلد pages
. سيكون هذا صفحتك الرئيسية (/
):
export default function Page() {
return <h1>Hello, Next.js!</h1>
}
بعد ذلك، أضف ملف _app.tsx
داخل pages/
لتحديد التخطيط العام. تعلم المزيد حول ملف التطبيق المخصص.
import type { AppProps } from 'next/app'
export default function App({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />
}
export default function App({ Component, pageProps }) {
return <Component {...pageProps} />
}
أخيرًا، أضف ملف _document.tsx
داخل pages/
للتحكم في الاستجابة الأولية من الخادم. تعلم المزيد حول ملف المستند المخصص.
import { Html, Head, Main, NextScript } from 'next/document'
export default function Document() {
return (
<Html>
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
تعلم المزيد حول استخدام موجه الصفحات.
معلومة مفيدة: على الرغم من أنه يمكنك استخدام كلا الموجهين في نفس المشروع، إلا أن المسارات في
app
ستكون ذات أولوية علىpages
. نوصي باستخدام موجه واحد فقط في مشروعك الجديد لتجنب الارتباك.
مجلد public
(اختياري)
قم بإنشاء مجلد public
لتخزين الأصول الثابتة مثل الصور والخطوط وغيرها. يمكن بعد ذلك الإشارة إلى الملفات داخل مجلد public
من خلال الكود الخاص بك بدءًا من عنوان URL الأساسي (/
).
تشغيل خادم التطوير
- قم بتنفيذ
npm run dev
لبدء خادم التطوير. - قم بزيارة
http://localhost:3000
لعرض تطبيقك. - قم بتعديل ملف
app/page.tsx
(أوpages/index.tsx
) واحفظه لرؤية النتيجة المحدثة في متصفحك.