انتقل إلى المقال
Aniq-UI

SaaS Templateحل المشكلات

حل المشكلات

الأخطاء التي قد تواجهها أثناء تثبيت الموقع أو بنائه أو تعديله، وسبب كل خطأ، وكيف تصلحه.

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 غير مُشغَّل.

  1. افتح Docker Desktop

    شغّل Docker Desktop وانتظر حتى يُظهر أن المحرك يعمل. على Linux، شغّل الخدمة: sudo systemctl start docker.

  2. تحقق من أن Docker يستجيب

    الطرفية
    docker info

    النتيجة المتوقعة: يطبع قسم Server بدلًا من رسالة خطأ.

  3. شغّل أمرك مجددًا

    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: غالبًا تشغيل سابق لهذا الموقع، أو خادم مشروع آخر.

  1. اعرف ما الذي يشغل المنفذ

    على macOS أو Linux:

    الطرفية
    lsof -i :3030

    على Windows، في PowerShell:

    الطرفية
    netstat -ano | findstr :3030
  2. أوقفه

    أغلق ذلك البرنامج، أو أوقف التشغيل السابق: Ctrl+C في طرفيته، أو docker stop مع معرّف الحاوية من docker ps. ثم شغّل الموقع مرة أخرى.

  3. أو استخدم منفذًا آخر

    أبقِ البرنامج الآخر وشغّل الموقع على منفذ متاح، هنا 3041:

    طريقة التشغيلالأمر
    Dockerdocker 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 Sans from 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-2
docker 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-2
rm -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، فادخل إلى المجلد الداخلي.

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.