حل المشكلات
الأخطاء التي قد تواجهها أثناء تثبيت الموقع أو بنائه أو تعديله، وسبب كل خطأ، وكيف تصلحه.
Docker لا يعمل
failed to connect to the docker API at unix:///…/docker.sock; check if the path is correct and if the daemon is runningتعرض إصدارات Docker الأقدم الرسالة "Cannot connect to the Docker daemon" بدلًا من ذلك. وفي الحالتين، محرك Docker غير مُشغَّل.
افتح Docker Desktop
شغّل Docker Desktop وانتظر حتى يُظهر أن المحرك يعمل. على Linux، شغّل الخدمة:
sudo systemctl start docker.تحقق من أن Docker يستجيب
الطرفيةdocker infoالنتيجة المتوقعة: يطبع قسم Server بدلًا من رسالة خطأ.
شغّل أمرك مجددًا
docker build -t analytics-landing .، ثمdocker run -p 3030:3030 analytics-landing.
المنفذ مستخدم بالفعل
Bind for 0.0.0.0:3030 failed: port is already allocated
ports are not available: exposing port TCP 0.0.0.0:3030 … bind: address already in use
Error: listen EADDRINUSE: address already in use :::3030السطران الأولان من Docker، والأخير من yarn dev أو yarn start. برنامج آخر يستمع بالفعل على المنفذ 3030: غالبًا تشغيل سابق لهذا الموقع، أو خادم مشروع آخر.
اعرف ما الذي يشغل المنفذ
على macOS أو Linux:
الطرفيةlsof -i :3030على Windows، في PowerShell:
الطرفيةnetstat -ano | findstr :3030أوقفه
أغلق ذلك البرنامج، أو أوقف التشغيل السابق: Ctrl+C في طرفيته، أو
docker stopمع معرّف الحاوية منdocker ps. ثم شغّل الموقع مرة أخرى.أو استخدم منفذًا آخر
أبقِ البرنامج الآخر وشغّل الموقع على منفذ متاح، هنا
3041:طريقة التشغيل الأمر Docker docker run -p 3041:3030 analytics-landingخادم التطوير yarn dev -p 3041بناء الإنتاج yarn start -p 3041مع Docker، غيّر الرقم الأول بعد
-pفقط: الموقع داخل الحاوية يستمع دائمًا على3030.النتيجة المتوقعة: يعمل الموقع على localhost:3041/enمحلي.
فشل البناء
يتوقف docker build بالرسالة "failed to solve" مع الخطوة التي فشلت؛ ويتوقف yarn build مع الخطأ نفسه. الأسباب المعتادة:
- لا يوجد اتصال أو انتهت المهلة: ينزّل البناء الاعتماديات، وخطوط DM Sans و Noto Sans Arabic و Almarai من Google Fonts. رسالة مثل «Failed to fetch
DM Sansfrom Google Fonts.» تعني أن البناء لم يصل إليها. أعد تشغيل الأمر عندما تتصل بالإنترنت. ومع Docker تُحفظ الخطوات المنتهية. - `Invalid URL`: قيمة
NEXT_PUBLIC_SITE_URLليست عنوانًا كاملًا. اكتبها معhttps://، مثلhttps://www.your-domain.com. - لا توجد مساحة كافية على الجهاز (No space left on device): حرّر مساحة في Docker Desktop، أو تحقق مما يستخدمه Docker بالأمر
docker system df. - يفشل عند الخطوة نفسها في كل مرة: أعد البناء من دون ذاكرة التخزين المؤقت.
Nextjs-landing-page-template-2docker build --no-cache -t analytics-landing .من دون Docker، احذف المجلدين node_modules و.next، ثم شغّل yarn install وyarn build مجددًا.
يقول Yarn إن إصداره 1.22
This project's package.json defines "packageManager": "yarn@4.8.1…". However the current global version of Yarn is 1.22…يثبّت المشروع Yarn 4 عبر Corepack. تعني هذه الرسالة أن Corepack لم يُفعَّل بعد، فأجاب Yarn عام قديم بدلًا منه.
corepack enableثم شغّل yarn install من جديد. استخدم Yarn بدل npm، فالملف yarn.lock هو ما يُبقي تثبيتك على الإصدارات التي اختُبر بها القالب.
لا يوجد أمر corepack
corepack: command not foundلم يعد Node.js 25 وما بعده يتضمن Corepack. ثبّته مرة واحدة بـ npm، ثم فعّله:
npm install -g corepack
corepack enableثم شغّل yarn install من جديد. الأمران نفسهما يصلحان yarn: command not found.
إصدار Node.js قديم
You are using Node.js 18.20.4. For Next.js, Node.js version ">=20.9.0" is required.يحتاج Next.js 16 إلى Node.js 20.9 أو أحدث. اعرف إصدارك بالأمر node -v. ثبّت Node.js 22 أو 24، وافتح طرفية جديدة، وشغّل corepack enable من جديد، ثم yarn install وyarn dev.
مع Docker لا ينطبق هذا، فالصورة تأتي بـ Node.js 24 الخاص بها.
تغيير الإعداد لا يُحدث أي أثر
تُضمَّن NEXT_PUBLIC_SITE_URL وبقية قيم NEXT_PUBLIC_ في الموقع عند بنائه. تغيير إحداها لا يغيّر شيئًا حتى يُبنى الموقع من جديد.
| طريقة التشغيل | بعد تغيير قيمة |
|---|---|
yarn dev | غيّره في .env.local، وأوقف الخادم، ثم شغّل yarn dev مجددًا. |
yarn build وyarn start | غيّره في .env.local، وشغّل yarn build مجددًا، ثم yarn start. |
| Docker | ابنِ الصورة مجددًا مع القيمة كوسيط --build-arg. يتجاهل بناء الصورة .env و.env.local. |
| Vercel | غيّره في Environment Variables الخاصة بالمشروع وانشر مجددًا. |
يفشل yarn start أو يعرض نسخة قديمة
Could not find a production build in the '.next' directory. Try building your app with 'next build' before starting the production server.يقدّم yarn start آخر بناء إنتاج من المجلد .next. شغّل yarn build أولًا، ومن جديد بعد كل تغيير.
إذا ظهرت في الموقع أخطاء لا تطابق كودك، وغالبًا بعد تغيير إصدار اعتمادية أو BUILD_STANDALONE، فاحذف المجلد .next وابنِ من جديد:
Nextjs-landing-page-template-2rm -rf .next
yarn buildعلى Windows، في PowerShell، احذفه بالأمر Remove-Item -Recurse -Force .next.
يقول النموذج إنه أُرسل، لكن لا يصل شيء
هكذا يأتي القالب. تتحقق النماذج مما يكتبه الزوار وتعرض رسالة النجاح، لكنها لا ترسل شيئًا إلى أي مكان حتى تربط كل نموذج تُبقيه بخدمتك الخاصة.
سمة لونية جديدة لا تظهر في وضع التطوير
مع yarn dev، تتيح لك لوحة عائمة معاينة السمات اللونية الأربع، ويتذكر المتصفح السمة التي اخترتها فيها. وهذا الاختيار يتغلب على السمة المضبوطة في الكود. اختر السمة نفسها في اللوحة، أو امسح بيانات الموقع الخاصة بـ localhost:3030 في متصفحك.
بناء الإنتاج، سواء بـ yarn start أو Docker، لا يعرض اللوحة أبدًا ويستخدم دائمًا السمة المضبوطة في الكود.
يفتح الموقع بالعربية
يوجّه فتح / الزائر إلى /ar عندما يفضّل متصفحه العربية، وإلى /en في غير ذلك. اختر اللغة الأخرى من قائمة اللغة في الترويسة، أو افتح /en مباشرة.
رابط لا يؤدي إلى أي مكان
بعض روابط التذييل وأيقونات التواصل الاجتماعي وروابط التواصل في صفحة التواصل تشير إلى عناصر نائبة #. هذا مقصود: عليك أن توجّهها إلى صفحاتك وحساباتك. أما روابط الترويسة والأسعار والمدونة والتواصل وأزرار إنشاء الحساب فتعمل بالفعل.
المجلد يبدو مختلفًا
شغّل الأوامر داخل المجلد الذي يُستخرج إليه ملف ZIP، وهو Nextjs-landing-page-template-2. فيه Dockerfile وpackage.json وyarn.lock وmessages وpublic وsrc. إذا كان الأمر unzip غير موجود، فاستخرج الملف بمدير الملفات. بعض الأدوات تضيف مجلدًا إضافيًا باسم ملف ZIP، فادخل إلى المجلد الداخلي.