Moduły i budowa aplikacji
Moduł grupuje funkcję biznesową wraz z jej stronami, API, danymi i tłumaczeniami. Aplikacja wybiera moduły do uruchomienia. Generatory zbierają ich deklaracje, żeby aplikacja mogła z nich korzystać.
Na tej stronie
Gdzie umieścić własny kod?
We własnej aplikacji dodaj funkcję w osobnym katalogu src/modules. Włącz ją w src/modules.ts. Praca nad samym frameworkiem odbywa się w repozytorium produktu, gdzie moduły Core znajdują się w packages/core/src/modules.
src/modules/service/
src/modules/visit_planning/ # example custom module
src/modules.ts # enabled modulesKod i dokumentacja
Od plików do działającej aplikacji
- Wybierz moduły i zadeklaruj ich zależności.
- Uruchom skrypty generowania aplikacji. Brak zadeklarowanej zależności zatrzymuje generowanie rejestru modułów.
- Zbuduj aplikację i sprawdź, czy oczekiwana strona, trasa lub usługa została zarejestrowana.
Kod i dokumentacja
Przykład: moduł serwisowy
Funkcja serwisowa może mieć własne sprawy, API i strony panelu w jednym module. Poniższy przykładowy katalog pokazuje podział plików. Dodaj te, których potrzebuje funkcja; moduł może korzystać z części dostępnych konwencji.
src/modules/service/
index.ts # module metadata
acl.ts # permission identifiers
di.ts # service registration
data/entities.ts # stored records
api/ # HTTP routes
backend/ # admin pages
subscribers/ # event handlers
i18n/ # translationsKod i dokumentacja
generators/module-registry.ts · extensibility/current-surfaces.mdx
Dlaczego samo dodanie pliku czasem nie wystarcza
Aplikacja odnajduje strony, trasy i rozszerzenia w generowanych rejestrach. Po dodaniu pliku włącz moduł i uruchom skrypt generowania dostępny w swojej aplikacji. Jeśli funkcja się nie pojawia, sprawdź rejestr. Ręczna zmiana wygenerowanego pliku zniknie przy kolejnym generowaniu.
Deklaracja encji wpływa również na strukturę bazy. Wygeneruj i przejrzyj migrację, a następnie zastosuj ją w docelowym środowisku. Poprawne zbudowanie trasy samo nie utworzy brakującej tabeli.
Kod i dokumentacja
Jak przekazywać dane między modułami?
Korzystaj z udokumentowanych rozszerzeń i zadeklarowanych zdarzeń. Przekazuj potrzebne dane, na przykład identyfikator klienta oraz informacje wymagane przez drugą funkcję. Importowanie prywatnego kodu innego modułu utrudnia późniejsze aktualizacje.
Kod i dokumentacja
Przed aktualizacją
Zmieniaj pliki źródłowe i ponownie generuj rejestry. Testuj funkcje korzystające ze zmienionych modułów. Podział na moduły ułatwia pracę nad kodem. Własne rozszerzenia nadal trzeba sprawdzić po aktualizacji.
Kod i dokumentacja
generators/module-registry.ts · extensibility/current-surfaces.mdx