Next.js

كيف تثبت Next.js — دليل إعداد البيئة 2026

📅 2026-11-11⏱ 6 دقائق قراءة
بعد أن أتقنت React و Node.js، حان الوقت للانتقال إلى **Next.js** — الإطار الذي يجمع **أفضل ما في العالمين**: Frontend + Backend في مشروع واحد. في هذا الدليل العملي، سنأخذك خطوة بخطوة لتثبيت Next.js وإعداد بيئة العمل، مع حل المشاكل الشائعة. ## ما هو Next.js؟ **Next.js** هو **إطار عمل (Framework)** مبني على **React**، طورته شركة **Vercel**. **تشبيه بسيط:** - **React:** محرك سيارة. - **Node.js:** الوقود. - **Next.js:** السيارة الكاملة الجاهزة للقيادة. **Next.js يضيف لـ React:** - **Routing** جاهز (App Router). - **Server Components**. - **API Routes**. - **SSR / SSG / ISR**. - **Image Optimization**. - **SEO** ممتاز. - **Font Optimization**. - **Bundle Optimization**. ## لماذا Next.js؟ قبل أن نبدأ، دعنا نتفق على الأسباب: - **إطار React الكامل:** لا تحتاج إعدادات معقدة. - **SEO ممتاز:** SSR و SSG. - **أداء عالٍ:** تحسينات تلقائية. - **سهل النشر:** Vercel. - **مستخدم في الإنتاج:** Netflix، TikTok، Twitch. - **الموقع الذي تتصفحه الآن** مبني بـ Next.js! ## الفرق بين React و Next.js <table> <thead> <tr> <th>المعيار</th> <th>React</th> <th>Next.js</th> </tr> </thead> <tbody> <tr> <td><strong>الراوتر</strong></td> <td>React Router (خارجي)</td> <td>App Router (مدمج)</td> </tr> <tr> <td><strong>SSR</strong></td> <td>❌ صعب</td> <td>✅ مدمج</td> </tr> <tr> <td><strong>SSG</strong></td> <td>❌ صعب</td> <td>✅ مدمج</td> </tr> <tr> <td><strong>API Routes</strong></td> <td>❌ لا يوجد</td> <td>✅ مدمج</td> </tr> <tr> <td><strong>SEO</strong></td> <td>⚠️ محدود</td> <td>✅ ممتاز</td> </tr> <tr> <td><strong>الصور</strong></td> <td>⚠️ يدوي</td> <td>✅ تلقائي</td> </tr> <tr> <td><strong>النشر</strong></td> <td>معقد</td> <td>✅ سهل</td> </tr> </tbody> </table> ## ما ستحتاجه <table> <thead> <tr> <th>المتطلب</th> <th>التفاصيل</th> </tr> </thead> <tbody> <tr> <td><strong>جهاز كمبيوتر</strong></td> <td>ويندوز 10/11 أو ماك</td> </tr> <tr> <td><strong>Node.js</strong></td> <td>الإصدار 18.17 أو أحدث</td> </tr> <tr> <td><strong>VS Code</strong></td> <td>محرر الأكواد</td> </tr> <tr> <td><strong>معرفة بـ React</strong></td> <td>من مسار React</td> </tr> <tr> <td><strong>وقت</strong></td> <td>20-30 دقيقة</td> </tr> </tbody> </table> **⚠️ مهم:** إذا لم تكن قد أتممت مسار React، راجعه أولاً. ## الجزء الأول: التحقق من Node.js ### على ويندوز: افتح **Command Prompt** أو **PowerShell**: ```bash node --version ``` **النتيجة المتوقعة:** ``` v20.x.x ``` ثم: ```bash npm --version ``` **النتيجة المتوقعة:** ``` 10.x.x ``` ### على ماك: افتح **Terminal**: ```bash node --version npm --version ``` **إذا ظهرت رسالة `'node' is not recognized`** — يجب تثبيت Node.js أولاً من **nodejs.org**. ## الجزء الثاني: إنشاء مشروع Next.js ### الطريقة 1: create-next-app (موصى به) ```bash npx create-next-app@latest my-next-app ``` **سيطلب منك:** ``` ✔ Would you like to use TypeScript? … Yes ✔ Would you like to use ESLint? … Yes ✔ Would you like to use Tailwind CSS? … Yes ✔ Would you like to use `src/` directory? … No ✔ Would you like to use App Router? … Yes ✔ Would you like to customize the default import alias? … No ``` **⚠️ اختر الإعدادات كما هو موضح** (TypeScript + ESLint + Tailwind + App Router). ### الطريقة 2: بدون أسئلة ```bash npx create-next-app@latest my-next-app --typescript --tailwind --eslint --app --no-src-dir --import-alias "@/*" ``` ### الخطوة التالية: الانتقال للمشروع ```bash cd my-next-app ``` ### تشغيل المشروع ```bash npm run dev ``` **النتيجة المتوقعة:** ``` ▲ Next.js 15.x.x - Local: http://localhost:3000 - Network: http://192.168.x.x:3000 ✓ Ready in 2.1s ``` افتح المتصفح على: **`http://localhost:3000`** **🎉 مبروك! مشروع Next.js يعمل!** ## الجزء الثالث: فهم بنية المشروع ``` my-next-app/ ├── app/ # ← App Router │ ├── layout.tsx # التخطيط العام │ ├── page.tsx # الصفحة الرئيسية │ ├── globals.css # الأنماط العامة │ └── favicon.ico ├── public/ # الملفات العامة ├── node_modules/ ├── .eslintrc.json ├── .gitignore ├── next.config.ts # إعدادات Next.js ├── package.json ├── postcss.config.mjs ├── tailwind.config.ts # إعدادات Tailwind └── tsconfig.json ``` ### الملفات المهمة: <table> <thead> <tr> <th>الملف</th> <th>الوظيفة</th> </tr> </thead> <tbody> <tr> <td><code>app/layout.tsx</code></td> <td>التخطيط العام (Header, Footer)</td> </tr> <tr> <td><code>app/page.tsx</code></td> <td>الصفحة الرئيسية</td> </tr> <tr> <td><code>app/globals.css</code></td> <td>الأنماط العامة</td> </tr> <tr> <td><code>next.config.ts</code></td> <td>إعدادات Next.js</td> </tr> <tr> <td><code>tailwind.config.ts</code></td> <td>إعدادات Tailwind CSS</td> </tr> </tbody> </table> ## الجزء الرابع: تعديل المشروع ### الخطوة 1: عدّل `app/page.tsx` **افتح `app/page.tsx`** واستبدل محتواه: ```tsx export default function Home() { return ( <main className="flex min-h-screen flex-col items-center justify-center p-24"> <h1 className="text-4xl font-bold text-gray-900 mb-4"> مرحباً بالعالم! 👋 </h1> <p className="text-xl text-gray-600"> أول تطبيق Next.js لي </p> </main> ); } ``` **احفظ الملف.** **النتيجة:** المتصفح سيتحدّث **تلقائياً** (Hot Reload). ### الخطوة 2: عدّل `app/layout.tsx` **افتح `app/layout.tsx`** وتأكد من أنه يحتوي على: ```tsx import type { Metadata } from "next"; import { Cairo } from "next/font/google"; import "./globals.css"; const cairo = Cairo({ subsets: ["arabic", "latin"], weight: ["400", "600", "700", "900"], }); export const metadata: Metadata = { title: "تطبيقي الأول", description: "تعلم Next.js بالعربية", }; export default function RootLayout({ children, }: { children: React.ReactNode; }) { return ( <html lang="ar" dir="rtl"> <body className={cairo.className}>{children}</body> </html> ); } ``` **الفائدة:** خط Cairo تلقائياً، و RTL للعربية. ## الجزء الخامس: إعداد VS Code ### الإضافات المهمة: <table> <thead> <tr> <th>الإضافة</th> <th>الوظيفة</th> </tr> </thead> <tbody> <tr> <td><strong>ES7+ React/Redux/React-Native snippets</strong></td> <td>اختصارات React</td> </tr> <tr> <td><strong>Tailwind CSS IntelliSense</strong></td> <td>إكمال Tailwind</td> </tr> <tr> <td><strong>Prettier</strong></td> <td>تنسيق الكود</td> </tr> <tr> <td><strong>ESLint</strong></td> <td>تحليل الكود</td> </tr> <tr> <td><strong>Auto Rename Tag</strong></td> <td>إعادة تسمية الوسوم</td> </tr> </tbody> </table> ## حل المشاكل الشائعة ### 🔴 المشكلة 1: `'node' is not recognized` **السبب:** Node.js غير مثبت. **الحل:** حمّل Node.js من **nodejs.org** (LTS). ### 🔴 المشكلة 2: `Port 3000 is already in use` **الحل:** ```bash npm run dev -- -p 3001 ``` ### 🔴 المشكلة 3: البناء بطيء **الحل:** احذف `.next`: ```bash rmdir /s /q .next npm run dev ``` ### 🔴 المشكلة 4: `Cannot find module` **الحل:** ```bash rm -rf node_modules package-lock.json npm install ``` ### 🔴 المشكلة 5: الخط العربي لا يظهر **الحل:** تأكد من `subsets: ["arabic"]` في `next/font/google`. ## جدول الأوامر الأساسية <table> <thead> <tr> <th>الأمر</th> <th>الوظيفة</th> </tr> </thead> <tbody> <tr> <td><code>npx create-next-app@latest</code></td> <td>إنشاء مشروع جديد</td> </tr> <tr> <td><code>npm run dev</code></td> <td>تشغيل السيرفر</td> </tr> <tr> <td><code>npm run build</code></td> <td>بناء للإنتاج</td> </tr> <tr> <td><code>npm start</code></td> <td>تشغيل الإنتاج</td> </tr> <tr> <td><code>npm run lint</code></td> <td>فحص الكود</td> </tr> <tr> <td><code>npm run dev -- -p 3001</code></td> <td>تشغيل على منفذ مختلف</td> </tr> </tbody> </table> ## قائمة تحقق نهائية <table> <thead> <tr> <th>المهمة</th> <th>الحالة</th> </tr> </thead> <tbody> <tr> <td>تأكيد وجود Node.js</td> <td>⬜</td> </tr> <tr> <td>إنشاء مشروع Next.js</td> <td>⬜</td> </tr> <tr> <td>تشغيل السيرفر</td> <td>⬜</td> </tr> <tr> <td>تعديل <code>page.tsx</code></td> <td>⬜</td> </tr> <tr> <td>تعديل <code>layout.tsx</code></td> <td>⬜</td> </tr> <tr> <td>تثبيت إضافات VS Code</td> <td>⬜</td> </tr> <tr> <td>تأكيد عمل Hot Reload</td> <td>⬜</td> </tr> </tbody> </table> ## ماذا بعد هذا المقال؟ الآن بعد أن أصبحت بيئة العمل جاهزة، حان وقت التعلم: 1. **أول تطبيق Next.js** — تعمق في الأساسيات. 2. **App Router** — التنقل بين الصفحات. 3. **Server Components** — القوة الحقيقية لـ Next.js. ## الخلاصة تثبيت Next.js عملية بسيطة. أهم النقاط: - ✅ **Next.js هو إطار React الكامل.** - ✅ **create-next-app** أسهل طريقة. - ✅ **App Router** هو الحديث. - ✅ **Tailwind CSS** مدمج. - ✅ **Hot Reload** يحدّث تلقائياً. - ✅ **الخطوط والصور** محسّنة تلقائياً. **تذكر:** إذا واجهت مشكلة، ابحث عنها بالإنجليزية على Google.