Diese Dokumentation wurde automatisch von KI übersetzt.
Command – Kommandozeile
In NocoBase verwenden Sie Befehle (Commands), um anwendungs- oder pluginbezogene Operationen in der Kommandozeile auszuführen. Dazu gehören beispielsweise das Starten von Systemaufgaben, das Ausführen von Migrations- oder Synchronisationsoperationen, das Initialisieren von Konfigurationen oder die Interaktion mit laufenden Anwendungsinstanzen. Entwickler können für Plugins eigene Befehle definieren und diese über das app-Objekt registrieren. In der CLI werden diese dann im Format nocobase <command> ausgeführt.
Befehlstypen
In NocoBase unterscheidet man zwei Arten der Befehlsregistrierung:
Dynamische Befehle
Verwenden Sie app.command(), um Plugin-Befehle zu definieren. Diese Befehle können nur ausgeführt werden, nachdem das Plugin aktiviert wurde. Die Befehlsdateien sollten im Plugin-Verzeichnis unter src/server/commands/*.ts abgelegt werden.
Beispiel
Beschreibung
app.command('echo'): Definiert einen Befehl mit dem Namenecho..option('-v, --version'): Fügt dem Befehl eine Option hinzu..action(): Definiert die Ausführungslogik des Befehls.app.version.get(): Ruft die aktuelle Anwendungsversion ab.
Befehl ausführen
Statische Befehle
Verwenden Sie Application.registerStaticCommand() zur Registrierung. Statische Befehle können ausgeführt werden, ohne dass Plugins aktiviert werden müssen, und eignen sich daher ideal für Installations-, Initialisierungs-, Migrations- oder Debugging-Aufgaben. Die Registrierung erfolgt in der staticImport()-Methode der Plugin-Klasse.
Beispiel
Befehl ausführen
Beschreibung
Application.registerStaticCommand()registriert Befehle, bevor die Anwendung instanziiert wird.- Statische Befehle werden in der Regel verwendet, um globale Aufgaben auszuführen, die unabhängig vom Status der Anwendung oder des Plugins sind.
Command API
Befehlsobjekte bieten drei optionale Hilfsmethoden, um den Ausführungskontext eines Befehls zu steuern:
Konfigurationsbeschreibung
-
ipc()
Standardmäßig werden Befehle in einer neuen Anwendungsinstanz ausgeführt.
Nach der Aktivierung vonipc()interagieren Befehle über die Interprozesskommunikation (IPC) mit der aktuell laufenden Anwendungsinstanz. Dies ist ideal für Echtzeit-Operationsbefehle (z. B. das Aktualisieren des Caches oder das Senden von Benachrichtigungen). -
auth()
Überprüft vor der Befehlsausführung, ob die Datenbankkonfiguration verfügbar ist.
Wenn die Datenbankkonfiguration falsch ist oder die Verbindung fehlschlägt, wird der Befehl nicht fortgesetzt. Dies wird häufig für Aufgaben verwendet, die Datenbank-Schreib- oder Leseoperationen beinhalten. -
preload()
Lädt die Anwendungskonfiguration vor der Ausführung des Befehls vor, was der Ausführung vonapp.load()entspricht.
Dies ist geeignet für Befehle, die von der Konfiguration oder dem Plugin-Kontext abhängen.
Weitere API-Methoden finden Sie unter AppCommand.

