كيفية إعداد مشروع Next.js جديد
متطلبات النظام
قبل البدء، تأكد من أن نظامك يستوفي المتطلبات التالية:
- Node.js 18.18 أو أحدث.
- نظام macOS أو Windows (بما في ذلك WSL) أو Linux.
التثبيت التلقائي
أسرع طريقة لإنشاء تطبيق Next.js جديد هي استخدام create-next-app
، والذي يقوم بإعداد كل شيء تلقائيًا لك. لإنشاء مشروع، قم بتنفيذ:
npx create-next-app@latest
عند التثبيت، سترى المطالبات التالية:
ما هو اسم مشروعك؟ my-app
هل ترغب في استخدام TypeScript؟ لا / نعم
هل ترغب في استخدام ESLint؟ لا / نعم
هل ترغب في استخدام Tailwind CSS؟ لا / نعم
هل ترغب في وضع الكود داخل مجلد `src/`؟ لا / نعم
هل ترغب في استخدام App Router؟ (موصى به) لا / نعم
هل ترغب في استخدام Turbopack لـ `next dev`؟ لا / نعم
هل ترغب في تخصيص Import Alias (الافتراضي `@/*`)؟ لا / نعم
ما Import Alias الذي ترغب في تكوينه؟ @/*
بعد المطالبات، سيقوم create-next-app
بإنشاء مجلد باسم مشروعك وتثبيت التبعيات المطلوبة.
التثبيت اليدوي
لإنشاء تطبيق 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"
}
}
تشير هذه السكربتات إلى مراحل مختلفة من تطوير التطبيق:
next dev
: يبدأ خادم التطوير.next build
: يقوم ببناء التطبيق للإنتاج.next start
: يبدأ خادم الإنتاج.next lint
: يقوم بتشغيل ESLint.
إنشاء مجلد app
يستخدم Next.js توجيه نظام الملفات، مما يعني أن المسارات في تطبيقك يتم تحديدها من خلال كيفية تنظيم ملفاتك.
قم بإنشاء مجلد app
. ثم، داخل 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
و page.tsx
عندما يزور المستخدم جذر تطبيقك (/
).

معلومة مفيدة:
- إذا نسيت إنشاء تخطيط الجذر، سيقوم Next.js تلقائيًا بإنشاء هذا الملف عند تشغيل خادم التطوير باستخدام
next dev
.- يمكنك اختياريًا استخدام مجلد
src
في جذر مشروعك لفصل كود التطبيق عن ملفات التكوين.
إنشاء مجلد public
(اختياري)
قم بإنشاء مجلد public
في جذر مشروعك لتخزين الأصول الثابتة مثل الصور والخطوط وما إلى ذلك. يمكن بعد ذلك الإشارة إلى الملفات داخل public
من خلال الكود الخاص بك بدءًا من عنوان URL الأساسي (/
).
يمكنك بعد ذلك الإشارة إلى هذه الأصول باستخدام المسار الجذري (/
). على سبيل المثال، يمكن الإشارة إلى public/profile.png
كـ /profile.png
:
import Image from 'next/image'
export default function Page() {
return <Image src="/profile.png" alt="Profile" width={100} height={100} />
}
import Image from 'next/image'
export default function Page() {
return <Image src="/profile.png" alt="Profile" width={100} height={100} />
}
تشغيل خادم التطوير
- قم بتشغيل
npm run dev
لبدء خادم التطوير. - قم بزيارة
http://localhost:3000
لعرض تطبيقك. - قم بتحرير ملف
app/page.tsx
واحفظه لرؤية النتيجة المحدثة في متصفحك.
إعداد TypeScript
الحد الأدنى لإصدار TypeScript:
v4.5.2
يأتي Next.js مع دعم مدمج لـ TypeScript. لإضافة TypeScript إلى مشروعك، قم بإعادة تسمية ملف إلى .ts
/ .tsx
وقم بتشغيل next dev
. سيقوم Next.js تلقائيًا بتثبيت التبعيات الضرورية وإضافة ملف tsconfig.json
مع خيارات التكوين الموصى بها.
ملحق IDE
يتضمن Next.js ملحق TypeScript مخصصًا ومدقق نوع، والذي يمكن أن تستخدمه VSCode ومحررات الأكواد الأخرى للتحقق المتقدم من الأنواع والإكمال التلقائي.
يمكنك تمكين الملحق في VS Code عن طريق:
- فتح لوحة الأوامر (
Ctrl/⌘
+Shift
+P
) - البحث عن "TypeScript: Select TypeScript Version"
- اختيار "Use Workspace Version"

راجع صفحة مرجع TypeScript لمزيد من المعلومات.
إعداد ESLint
يأتي Next.js مع ESLint مدمج. يقوم تلقائيًا بتثبيت الحزم الضرورية وتكوين الإعدادات المناسبة عند إنشاء مشروع جديد باستخدام create-next-app
.
لإضافة ESLint يدويًا إلى مشروع موجود، أضف next lint
كسكربت إلى package.json
:
{
"scripts": {
"lint": "next lint"
}
}
ثم قم بتشغيل npm run lint
وسيتم توجيهك خلال عملية التثبيت والتكوين.
npm run lint
سترى مطالبة مثل هذه:
? كيف ترغب في تكوين ESLint؟
❯ صارم (موصى به)
أساسي
إلغاء
- صارم: يتضمن تكوين ESLint الأساسي لـ Next.js مع مجموعة قواعد أكثر صرامة لـ Core Web Vitals. هذا هو التكوين الموصى به للمطورين الذين يقومون بإعداد ESLint لأول مرة.
- أساسي: يتضمن تكوين ESLint الأساسي لـ Next.js.
- إلغاء: تخطي التكوين. اختر هذا الخيار إذا كنت تخطط لإعداد تكوين ESLint مخصص خاص بك.
إذا تم اختيار صارم أو أساسي، سيقوم Next.js تلقائيًا بتثبيت eslint
و eslint-config-next
كتبعيات في تطبيقك وإنشاء ملف .eslintrc.json
في جذر مشروعك يتضمن التكوين الذي اخترته.
يمكنك الآن تشغيل next lint
في أي وقت تريد تشغيل ESLint للكشف عن الأخطاء. بمجرد إعداد ESLint، سيتم تشغيله تلقائيًا أيضًا خلال كل بناء (next build
). ستؤدي الأخطاء إلى فشل البناء، بينما لن تؤدي التحذيرات إلى ذلك.
راجع صفحة ملحق ESLint لمزيد من المعلومات.
إعداد الاستيراد المطلق و Module Path Aliases
يحتوي Next.js على دعم مدمج لخيارات "paths"
و "baseUrl"
لملفات tsconfig.json
و jsconfig.json
.
تتيح لك هذه الخيارات تعيين مسارات المجلدات في المشروع إلى مسارات مطلقة، مما يجعل استيراد الوحدات أسهل وأنظف. على سبيل المثال:
// قبل
import { Button } from '../../../components/button'
// بعد
import { Button } from '@/components/button'
لتكوين الاستيراد المطلق، أضف خيار baseUrl
إلى ملف tsconfig.json
أو jsconfig.json
الخاص بك. على سبيل المثال:
{
"compilerOptions": {
"baseUrl": "src/"
}
}
بالإضافة إلى تكوين مسار baseUrl
، يمكنك استخدام خيار "paths"
لـ "alias"
مسارات الوحدات.
على سبيل المثال، يقوم التكوين التالي بتعيين @/components/*
إلى components/*
:
{
"compilerOptions": {
"baseUrl": "src/",
"paths": {
"@/styles/*": ["styles/*"],
"@/components/*": ["components/*"]
}
}
}
كل من "paths"
مرتبطة بموقع baseUrl
.