Wasp TS Config: Strategien für eine verbesserte Code-Organisation
Die in Version 0.15 eingeführte TS-Konfiguration von Wasp zielte darauf ab, die Entwicklung mit Funktionen wie der Unterstützung mehrerer Wasp-Dateien und einer verbesserten Editor-Integration zu vereinfachen. Während für zukünftige Versionen eine direkte Unterstützung mehrerer Dateien geplant ist, können wir bereits die Codeorganisation verbessern und die Größe von main.wasp.ts
.
Methode: Modularisierende Konfiguration
Bei diesem Ansatz werden verschiedene Konfigurationsabschnitte (Seiten, Jobs, Abfragen, Aktionen usw.) in separate Module extrahiert. Dies verbessert die Lesbarkeit und Wartbarkeit.
Teil 1: Seitendefinitionen entkoppeln
Um Seitendefinitionen zu trennen, können wir eine dedizierte Konfigurationsdatei erstellen (z. B. pages.config.ts
).
Schritt 1: Erstellen Sie pages.config.ts
Diese Datei exportiert eine Funktion, die Seitenkonfigurationen basierend auf der bereitgestellten app
Instanz generiert:
<code class="language-typescript">// pages.config.ts export const pagesConfig = (app: any) => { const landingPage = app.page('LandingPage', { component: { importDefault: 'LandingPage', from: '@src/landing-page/LandingPage' } }); // ... other pages return { landingPage, // ... other pages }; };</code>
Erwägen Sie, diese Datei in einem speziellen Verzeichnis abzulegen (z. B. wasp-config
).
Schritt 2: Importieren und Verwenden von pages.config.ts
in main.wasp.ts
Importieren Sie die Funktion pagesConfig
und übergeben Sie ihr die Instanz app
:
<code class="language-typescript">// main.wasp.ts import { pagesConfig } from './pages.config.ts'; // ... other code const { landingPage, /* ... other pages */ } = pagesConfig(app); app.route('LandingPageRoute', { path: '/', to: landingPage });</code>
Teil 2: Modularisierung von Jobs, Abfragen und Aktionen
Die gleiche Modularisierungsstrategie gilt für Jobs, Abfragen und Aktionen. Lassen Sie uns dies mit Jobs demonstrieren, die jobs.config.ts
.
Schritt 1: Erstellen Sie jobs.config.ts
Diese Datei definiert eine Funktion zum Generieren von Jobkonfigurationen:
<code class="language-typescript">// jobs.config.ts import { JobConfig } from "wasp-config"; export const jobConfigs = (app: any) => { const dailyStatsJobConfig: JobConfig = { executor: 'PgBoss', perform: { fn: { import: 'calculateDailyStats', from: '@src/analytics/stats' } }, entities: ['User', 'DailyStats', 'Logs', 'PageViewSource'] }; return { dailyStatsJobConfig }; };</code>
Schritt 2: Importieren und Verwenden von jobs.config.ts
in main.wasp.ts
Importieren und verwenden Sie die Funktion jobConfigs
ähnlich wie bei der Seitenkonfiguration:
<code class="language-typescript">// main.wasp.ts import { jobConfigs } from './jobs.config.ts'; // ... other code const { dailyStatsJobConfig } = jobConfigs(app); app.job('dailyStatsJob', dailyStatsJobConfig);</code>
Fazit
Dieser modulare Ansatz verbessert die Organisation Ihrer Wasp-Konfiguration erheblich und verbessert die Lesbarkeit und Wartbarkeit, während auf die offizielle Unterstützung mehrerer Wasp-Dateien gewartet wird. Diese Technik bietet eine praktische Lösung für die Verwaltung komplexer Wasp-Projekte auch ohne direkte Multi-File-Unterstützung. Denken Sie daran, diesen Ansatz bei Bedarf für Abfragen und Aktionen anzupassen.
Das obige ist der detaillierte Inhalt vonWasp TS-Konfiguration aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!