Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie
Of u nu de broncode kloont via Git of een project initialiseert met create-nocobase-app, het gegenereerde NocoBase-project is in essentie een monorepo gebaseerd op Yarn Workspace.
Het volgende voorbeeld gebruikt my-nocobase-app/ als projectmap. Er kunnen kleine verschillen zijn in verschillende omgevingen:
packages/ submapDe packages/ map bevat de kernmodules en uitbreidbare pakketten van NocoBase. De inhoud is afhankelijk van de projectbron:
create-nocobase-app: Standaard bevat deze alleen packages/plugins/, bedoeld voor het opslaan van de broncode van aangepaste plugins. Elke submap is een onafhankelijk npm-pakket.core/, plugins/, pro-plugins/, presets/, enz., die respectievelijk overeenkomen met de frameworkkern, ingebouwde plugins en officiële vooraf ingestelde oplossingen.In beide gevallen is packages/plugins de belangrijkste locatie voor het ontwikkelen en debuggen van aangepaste plugins.
storage/ Runtime mapstorage/ slaat runtime-gegenereerde gegevens en build-outputs op. Hieronder vindt u een beschrijving van de meest voorkomende submappen:
apps/: Configuratie en cache voor scenario's met meerdere applicaties.logs/: Runtime logs en debug-output.uploads/: Door gebruikers geüploade bestanden en mediaresources.plugins/: Verpakte plugins die via de UI zijn geüpload of via de CLI zijn geïmporteerd.tar/: Gecomprimeerde plugin-pakketten die zijn gegenereerd na het uitvoeren van yarn build <plugin> --tar.Het wordt meestal aanbevolen om de
storagemap toe te voegen aan.gitignoreen deze apart te behandelen tijdens implementatie of back-up.
.env, .env.test, .env.e2e: Worden respectievelijk gebruikt voor lokaal draaien, unit-/integratietesten en end-to-end testen.scripts/: Bevat veelgebruikte onderhoudsscripts (zoals database-initialisatie, hulpprogramma's voor releases, enz.).Plugins kunnen op meerdere locaties aanwezig zijn. NocoBase laadt ze bij het opstarten in de volgende prioriteitsvolgorde:
packages/plugins (voor lokale ontwikkeling en debugging).storage/plugins (geüpload via de UI of geïmporteerd via de CLI).node_modules (geïnstalleerd via npm/yarn of ingebouwd in het framework).Wanneer een plugin met dezelfde naam zowel in de bronmap als in de verpakte map bestaat, geeft het systeem prioriteit aan het laden van de bronversie, wat lokale overschrijvingen en debugging vergemakkelijkt.
Maak een plugin met behulp van de CLI:
De gegenereerde mapstructuur is als volgt:
Nadat de build is voltooid, worden de
dist/map en declient.js,server.jsbestanden geladen wanneer de plugin wordt ingeschakeld. Tijdens de ontwikkeling hoeft u alleen desrc/map aan te passen. Voordat u publiceert, voert uyarn build <plugin>ofyarn build <plugin> --taruit.