Översikt över pluginutveckling
NocoBase använder en mikrokärnarkitektur, där kärnan endast ansvarar för schemaläggning av pluginens livscykel, beroendehantering och inkapsling av grundläggande funktioner. Alla affärsfunktioner tillhandahålls som plugin. Därför är det första steget för att anpassa NocoBase att förstå pluginens organisationsstruktur, livscykel och hanteringssätt.
Kärnkoncept
- Plug and Play: Plugin kan installeras, aktiveras eller inaktiveras vid behov, vilket möjliggör flexibel kombination av affärsfunktioner utan att behöva ändra kod.
- Full-stack-integration: Plugin inkluderar vanligtvis både server- och klientimplementationer, vilket säkerställer konsekvens mellan datalogik och gränssnittsinteraktioner.
Grundläggande plugin-struktur
Varje plugin är ett oberoende npm-paket och innehåller vanligtvis följande katalogstruktur:
plugin-hello/
├─ package.json # Pluginets namn, beroenden och NocoBase plugin-metadata
├─ client.js # Frontend-kompilat, laddas vid körning
├─ server.js # Server-kompilat, laddas vid körning
├─ src/
│ ├─ client/ # Klientkällkod, kan registrera block, åtgärder, fält, etc.
│ └─ server/ # Serverkällkod, kan registrera resurser, händelser, kommandon, etc.
Katalogkonventioner och laddningsordning
NocoBase skannar som standard följande kataloger för att ladda plugin:
my-nocobase-app/
├── packages/
│ └── plugins/ # Plugin under utveckling (högst prioritet)
└── storage/
└── plugins/ # Kompilerade plugin, t.ex. uppladdade eller publicerade plugin
packages/plugins: Används för lokal pluginutveckling och stöder realtidskompilering och felsökning.
storage/plugins: Här lagras kompilerade plugin, till exempel kommersiella versioner eller tredjeparts-plugin.
Pluginens livscykel och tillstånd
Ett plugin går vanligtvis igenom följande steg:
- Skapa (create): Skapa en plugin-mall via CLI.
- Hämta (pull): Ladda ner plugin-paketet lokalt, men det har ännu inte skrivits till databasen.
- Aktivera (enable): Vid första aktiveringen utförs "registrering + initialisering"; efterföljande aktiveringar laddar endast logiken.
- Inaktivera (disable): Stoppa pluginet från att köras.
- Ta bort (remove): Ta bort pluginet helt från systemet.
TIP
pull laddar endast ner plugin-paketet; den faktiska installationsprocessen triggas av den första enable.
- Om ett plugin endast har
pullats men inte aktiverats, kommer det inte att laddas.
CLI-kommandoexempel
# 1. Skapa plugin-skelett
yarn pm create @my-project/plugin-hello
# 2. Hämta plugin-paket (ladda ner eller länka)
yarn pm pull @my-project/plugin-hello
# 3. Aktivera plugin (installeras automatiskt vid första aktiveringen)
yarn pm enable @my-project/plugin-hello
# 4. Inaktivera plugin
yarn pm disable @my-project/plugin-hello
# 5. Ta bort plugin
yarn pm remove @my-project/plugin-hello
Gränssnitt för pluginhantering
Öppna pluginhanteraren i webbläsaren för att intuitivt visa och hantera plugin:
Standard-URL: http://localhost:13000/admin/settings/plugin-manager
