מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית
ב-NocoBase, פקודות משמשות לביצוע פעולות הקשורות ליישומים או לתוספים בשורת הפקודה, כגון הפעלת משימות מערכת, ביצוע פעולות מיגרציה או סנכרון, אתחול תצורה, או אינטראקציה עם מופעי יישום פועלים. מפתחים יכולים להגדיר פקודות מותאמות אישית עבור תוספים ולרשום אותן באמצעות אובייקט ה-app, ולהפעיל אותן בממשק שורת הפקודה (CLI) בצורה nocobase <command>.
ב-NocoBase, רישום פקודות מחולק לשני סוגים:
| סוג | שיטת רישום | האם התוסף צריך להיות מופעל | תרחישים אופייניים |
|---|---|---|---|
| פקודה דינמית | app.command() | ✅ כן | פקודות הקשורות ללוגיקה עסקית של תוסף |
| פקודה סטטית | Application.registerStaticCommand() | ❌ לא | פקודות התקנה, אתחול ותחזוקה |
השתמשו ב-app.command() כדי להגדיר פקודות תוסף. פקודות אלו יכולות להתבצע רק לאחר שהתוסף מופעל. קובצי הפקודה צריכים להיות ממוקמים בנתיב src/server/commands/*.ts בתיקיית התוסף.
דוגמה
הסבר
app.command('echo'): מגדיר פקודה בשם echo..option('-v, --version'): מוסיף אפשרות (option) לפקודה..action(): מגדיר את לוגיקת הביצוע של הפקודה.app.version.get(): מאחזר את גרסת היישום הנוכחית.ביצוע הפקודה
השתמשו ב-Application.registerStaticCommand() לרישום. פקודות סטטיות יכולות להתבצע ללא צורך בהפעלת תוספים, והן מתאימות למשימות התקנה, אתחול, מיגרציה או דיבוג. רשמו אותן בשיטת staticImport() של מחלקת התוסף.
דוגמה
ביצוע הפקודה
הסבר
Application.registerStaticCommand() רושם פקודות לפני שהיישום עובר אינסטנסציה (instantiation).אובייקטי פקודה מספקים שלוש שיטות עזר אופציונליות לשליטה על הקשר הביצוע של הפקודה:
| שיטה | מטרה | דוגמה |
|---|---|---|
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(). מתאים לפקודות התלויות בתצורה או בהקשר של התוסף.
לשיטות API נוספות, עיינו ב-AppCommand.
אתחול נתוני ברירת מחדל
טעינה מחדש של מטמון עבור מופע פועל (מצב IPC)
רישום סטטי של פקודת התקנה