هذا الدليل مخصص لمشاريع Node.js وDiscord.js. تركيزه على package.json وnpm وتوافق Node.js وJavaScript Entry Point، وليس نشر مشاريع Python.

Node.js من أشهر البيئات المستخدمة لبوتات Discord. نجاح الاستضافة يعتمد على إصدار Node.js الصحيح وpackage.json والـDependencies والـEnvironment Variables وStartup File.

فهم package.json

package.json يحتوي على معلومات المشروع والـDependencies والـScripts. هو من أول الملفات التي يجب مراجعتها عند نقل مشروع Node.js إلى الاستضافة.

{
  "scripts": {
    "start": "node index.js"
  }
}

تثبيت Dependencies

إذا package.json يحتوي على الحزم المطلوبة، شغل npm install داخل مجلد المشروع.

npm install

اختيار Node.js Version

إصدار قديم قد لا يدعم Syntax أو Libraries حديثة. استخدم الإصدار الذي يحتاجه المشروع بدلاً من اختيار إصدار عشوائي.

ضبط Startup File

الملف الرئيسي قد يكون index.js أو app.js أو مساراً آخر. ويمكن استخدام npm start إذا package.json يعرف Start Script.

Environment Variables

خزن DISCORD_TOKEN وDatabase Credentials وAPI Keys خارج الكود المكشوف قدر الإمكان.

راجع package.json قبل النشر

package.json يوثق Dependencies وScripts الخاصة بالمشروع. تأكد أن Libraries المطلوبة موجودة داخل الملف وما تعتمد على Packages مثبتة فقط بجهازك.

إذا المشروع محدد engines فقارن المتطلب مع Node.js Runtime داخل الاستضافة.

{
  "scripts": {
    "start": "node index.js"
  },
  "engines": {
    "node": ">=20"
  }
}

ثبت Dependencies بشكل منظم

احتفظ بالLockfile إذا المشروع يستخدمه لأنه يساعد على إعادة نفس Dependency Tree.

استخدم Package Manager الخاص بالمشروع ولا تبدل الأدوات أثناء التشخيص بدون سبب.

  1. ارفع package.json والLockfile إذا موجود.
  2. افحص Node.js Version داخل الاستضافة.
  3. ثبت Dependencies.
  4. اقرأ Engine وInstallation Warnings.
  5. ابدأ التطبيق بعد نجاح Installation.
node --version
npm --version
npm install

حدد JavaScript Entry Point

Startup Command لازم يشير للملف اللي ينشئ Discord Client ويبدأ Login.

الاسم ممكن يكون index.js أو bot.js أو main.js حسب المشروع.

node index.js

تشخيص أخطاء Node.js الشائعة

Cannot find module غالباً يعني Dependency أو Import أو File ناقص، بينما EBADENGINE يعني أن Package تطلب Node.js Range مختلف عن Runtime الحالي.

شخص كل Error بشكل منفصل قبل تغيير كل Dependencies.

  • Cannot find module: افحص Installation وImport Paths.
  • EBADENGINE: قارن required وcurrent Node.js.
  • Invalid Token: افحص Environment Variable.
  • Immediate Exit: اقرأ أول Exception بالLog.

الأسئلة الشائعة

شنو يعني Cannot find module؟

غالباً Package غير مثبتة أو Path خطأ أو Module غير موجود بالمشروع.

ليش npm install يفشل؟

ممكن بسبب تعارض Dependencies أو Node.js Version أو Package تحتاج متطلبات إضافية.

أقدر أستخدم npm start؟

نعم إذا package.json يحتوي على Start Script صحيح.

شروحات مرتبطة