Detta dokument har översatts av AI. För eventuella felaktigheter, se den engelska versionen
I NocoBase använder ni kommandon för att utföra operationer relaterade till applikationer eller plugin i kommandoraden. Detta kan vara att köra systemuppgifter, utföra migreringar eller synkroniseringar, initiera konfiguration, eller interagera med körande applikationsinstanser. Utvecklare kan definiera anpassade kommandon för plugin och registrera dem via app-objektet, för att sedan köra dem i CLI som nocobase <command>.
I NocoBase delas registreringen av kommandon in i två typer:
| Typ | Registreringsmetod | Kräver plugin aktivering? | Typiska scenarier |
|---|---|---|---|
| Dynamiskt kommando | app.command() | ✅ Ja | Plugin-relaterade affärsfunktioner |
| Statiskt kommando | Application.registerStaticCommand() | ❌ Nej | Installations-, initierings- och underhållskommandon |
Använd app.command() för att definiera plugin-kommandon. Kommandon kan bara köras efter att plugin har aktiverats. Kommandofiler ska placeras i src/server/commands/*.ts i plugin-katalogen.
Exempel
Beskrivning
app.command('echo'): Definierar ett kommando med namnet echo..option('-v, --version'): Lägger till ett alternativ till kommandot..action(): Definierar logiken för kommandoexekvering.app.version.get(): Hämtar den aktuella applikationsversionen.Kör kommando
Använd Application.registerStaticCommand() för att registrera. Statiska kommandon kan köras utan att plugin behöver aktiveras, vilket gör dem lämpliga för installations-, initierings-, migrerings- eller felsökningsuppgifter. Registrera dem i plugin-klassens staticImport()-metod.
Exempel
Kör kommando
Beskrivning
Application.registerStaticCommand(): Registrerar kommandon innan applikationen instansieras.Kommandoobjekt erbjuder tre valfria hjälpmetoder för att styra kommandots exekveringskontext:
| Metod | Syfte | Exempel |
|---|---|---|
ipc() | Kommunicera med körande applikationsinstanser (via IPC) | app.command('reload').ipc().action() |
auth() | Verifiera att databaskonfigurationen är korrekt | app.command('seed').auth().action() |
preload() | Förladdar applikationskonfiguration (kör app.load()) | app.command('sync').preload().action() |
Konfigurationsbeskrivning
ipc()
Som standard körs kommandon i en ny applikationsinstans. När ni aktiverar ipc() interagerar kommandon med den för närvarande körande applikationsinstansen via interprocesskommunikation (IPC), vilket är lämpligt för realtidsoperationer (som att uppdatera cache, skicka meddelanden).
auth()
Kontrollerar om databaskonfigurationen är tillgänglig innan kommandot körs. Om databaskonfigurationen är felaktig eller anslutningen misslyckas, fortsätter kommandot inte. Används ofta för uppgifter som involverar databas-skrivningar eller -läsningar.
preload()
Förladdar applikationskonfigurationen innan kommandot körs, vilket motsvarar att köra app.load(). Lämpligt för kommandon som är beroende av konfiguration eller plugin-kontext.
För fler API-metoder, se AppCommand.
Initiera standarddata
Ladda om cache för körande instans (IPC-läge)
Statisk registrering av installationskommando