تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.
في NocoBase، تُستخدم الأوامر لتنفيذ عمليات متعلقة بالتطبيقات أو الإضافات من خلال سطر الأوامر، مثل تشغيل مهام النظام، أو تنفيذ عمليات الترحيل (migration) أو المزامنة (sync)، أو تهيئة الإعدادات، أو التفاعل مع نُسخ التطبيق قيد التشغيل. يمكن للمطورين تعريف أوامر مخصصة للإضافات وتسجيلها عبر كائن app، وتنفيذها في واجهة سطر الأوامر (CLI) بصيغة nocobase <command>.
في NocoBase، ينقسم تسجيل الأوامر إلى نوعين:
| النوع | طريقة التسجيل | هل يلزم تفعيل الإضافة؟ | السيناريوهات الشائعة |
|---|---|---|---|
| أمر ديناميكي | app.command() | ✅ نعم | أوامر متعلقة بعمل الإضافة |
| أمر ثابت | Application.registerStaticCommand() | ❌ لا | أوامر التثبيت، التهيئة، والصيانة |
استخدم app.command() لتعريف أوامر الإضافات. لا يمكن تنفيذ الأوامر إلا بعد تفعيل الإضافة. يجب وضع ملفات الأوامر في المسار src/server/commands/*.ts ضمن دليل الإضافة.
مثال
شرح
app.command('echo'): يُعرّف أمراً باسم echo..option('-v, --version'): يُضيف خياراً للأمر..action(): يُعرّف منطق تنفيذ الأمر.app.version.get(): يجلب إصدار التطبيق الحالي.تنفيذ الأمر
استخدم Application.registerStaticCommand() للتسجيل. يمكن تنفيذ الأوامر الثابتة دون الحاجة إلى تفعيل الإضافات، وهي مناسبة لمهام التثبيت أو التهيئة أو الترحيل (migration) أو التصحيح (debugging). يتم التسجيل في الدالة staticImport() الخاصة بفئة الإضافة.
مثال
تنفيذ الأمر
شرح
Application.registerStaticCommand() يسجل الأوامر قبل إنشاء نسخة من التطبيق.توفر كائنات الأوامر ثلاث طرق مساعدة اختيارية للتحكم في سياق تنفيذ الأمر:
| الدالة | الغرض | مثال |
|---|---|---|
ipc() | التواصل مع نُسخ التطبيق قيد التشغيل (عبر IPC) | app.command('reload').ipc().action() |
auth() | التحقق من صحة إعدادات قاعدة البيانات | app.command('seed').auth().action() |
preload() | تحميل إعدادات التطبيق مسبقاً (تنفيذ app.load()) | app.command('sync').preload().action() |
شرح الإعدادات
ipc()
بشكل افتراضي، تُنفذ الأوامر في نسخة تطبيق جديدة.
بعد تفعيل ipc()، تتفاعل الأوامر مع نسخة التطبيق قيد التشغيل حالياً عبر الاتصال بين العمليات (IPC)، وهي مناسبة لأوامر التشغيل في الوقت الفعلي (مثل تحديث ذاكرة التخزين المؤقت، إرسال الإشعارات).
auth()
تتحقق مما إذا كانت إعدادات قاعدة البيانات متاحة قبل تنفيذ الأمر.
إذا كانت إعدادات قاعدة البيانات غير صحيحة أو فشل الاتصال، فلن يستمر الأمر في التنفيذ. تُستخدم عادةً للمهام التي تتضمن عمليات الكتابة أو القراءة من قاعدة البيانات.
preload()
تحميل إعدادات التطبيق مسبقاً قبل تنفيذ الأمر، وهو ما يعادل تنفيذ app.load().
مناسبة للأوامر التي تعتمد على الإعدادات أو سياق الإضافة.
لمزيد من دوال واجهة برمجة التطبيقات، راجع AppCommand.
تهيئة البيانات الافتراضية
إعادة تحميل ذاكرة التخزين المؤقت لنسخة قيد التشغيل (وضع IPC)
التسجيل الثابت لأمر التثبيت