هذا الدليل مخصص لمشاريع 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 الخاص بالمشروع ولا تبدل الأدوات أثناء التشخيص بدون سبب.
- ارفع package.json والLockfile إذا موجود.
- افحص Node.js Version داخل الاستضافة.
- ثبت Dependencies.
- اقرأ Engine وInstallation Warnings.
- ابدأ التطبيق بعد نجاح 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 صحيح.