DenoX CLI: Projekte und Funktionen erstellen, ohne die Kontrolle zu verlieren
Installieren Sie DenoX CLI, erstellen Sie Anwendungsstrukturen, generieren Sie MVC-Funktionen mit OpenAPI, entfernen Sie Module sicher und aktualisieren Sie von dem Framework verwaltete Dateien, ohne den Anwendungscode anzufassen.
Eines der zentralen Ziele von DenoX ist es, wiederholende Entwicklungsarbeiten zu reduzieren, ohne den Ingenieuren die Kontrolle wegzunehmen. Das Framework liefert seine eigene CLI als eine einzige TypeScript-Datei, mit der Projekte erstellt, vollständige Funktionen generiert, Module sicher entfernt und das Framework selbst aktualisiert werden können.
Im Gegensatz zu vielen modernen CLIs, die Dutzende von Paketen verwenden, stützt sich die DenoX CLI ausschließlich auf die eingebauten Funktionen von Deno.
Installation
Installieren Sie es mit einem Befehl:
deno install -grA -n denox https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts
Oder führen Sie es ohne Installation aus:
deno run -A https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts new my-shop
Die CLI ist eine eigenständige Datei: Es gibt keine externen Abhängigkeiten und keine Importe aus dem Framework selbst.
Eine Projekt erstellen
Das Erstellen eines neuen Apps erfolgt mit einem Befehl:
denox new my-shop
Scaffolding leistet mehr als nur das Erstellen eines Templates auf der Festplatte. Es lädt das offizielle Starter-Projekt herunter, entfernt die Git-Geschichte dieses Starters, erstellt ein sauberes Repository, setzt das Versionsfeld auf 0.1.0 zurück, löscht den Changelog, schreibt die README-Datei unter Berücksichtigung des neuen Namens um und passt denox.config.ts entsprechend an.
Das Ergebnis ist sofort für die Entwicklung bereit und erfüllt bereits die deno task ci-Prüfungen des Projekts, ohne dass eine manuelle Aufräumarbeit erforderlich ist.
Auch benutzerdefinierte Templates funktionieren:
denox new my-app --template=<repository>
Erstellung einer vollständigen Funktionalität
Die stärkste Funktion der CLI ist die Erstellung einer ganzen MVC-Funktionalität aus nur einem Befehl.
denox g feature reviews
Anstelle leerer Platzhalter erzeugt die Generierung einen vollständigen MVC-geformten API-Anteil: Modell und DTO, Repository-Schnittstelle samt Implementierungen im Arbeitsspeicher und mit Deno KV, Service, Controller, Routen, eine neben dem Code liegende OpenAPI-Beschreibung sowie einen Skelett-Integrationstest.
Die Registrierung in src/api/main.ts erfolgt automatisch, sodass die Funktion ohne manuelle Konfiguration erreichbar ist.
OpenAPI integriert
Jede generierte Funktion verfügt über ihre eigene OpenAPI-Beschreibung.
Folgen:
- Die Dokumentation liegt neben der Implementierung
- Die Route-Paritätstests bleiben bestehen
- Ausführung:
deno task insomnia
erstellt die Insomnia-Kollektion automatisch neu.
Es gibt keine separate API-Dokumentation, die manuell gepflegt werden muss.
Sichere Codegenerierung
Die CLI verhält sich bei der Bearbeitung vorhandenen Codes zurückhaltend.
Falls das Zeichen // denox:features fehlt oder verändert ist, weigert sich das Tool, einen Einfügepunkt zu erstellen.
Es schreibt dennoch die neuen Feature-Dateien, gibt die genauen Zeilen an, die man manuell einfügen muss, und lässt alle vorhandenen Quelldateien unberührt.
Falsche Namen oder doppelte Feature-IDs verhindern, dass der Befehl die Struktur ändert.
Entfernen eines Features
Die umgekehrte Operation ist genauso wichtig wie die Erstellung.
denox rm feature reviews
Durch das Entfernen soll verhindert werden, dass Projekte beschädigt werden.
Zunächst entfernt die CLI alle Verweise des Routers auf das Feature.
Nur nachdem die Anwendung vollständig getrennt wurde, werden die Dateien gelöscht.
Auch wenn der Vorgang unterwegs abbricht, bleibt das Projekt niemals mit Importen übrig, die auf fehlende Dateien verweisen.
Sobald die Bearbeitung abgeschlossen ist, entspricht src/api/main.ts dem Zustand vor der Erstellung: Es gibt keine verlorenen Importe und keine zusätzlichen leeren Zeilen.
Vorabansicht mit:
denox rm feature reviews --dry-run
Die Kernmodule bleiben gesperrt. Versuche, die integrierten Komponenten – darunter Authentifizierung, Benutzer, Produkte, Zahlungen, Gesundheitsdaten und Kontakte – zu löschen, werden abgelehnt.
Aktualisierung des Frameworks
Halten Sie Projekte auf dem neuesten Stand mit:
denox upgrade
Aktualisierungen überschreiben nicht den gesamten Strukturbaum. Nur die vom Framework verwalteten Pfade ändern sich.
Diese Pfade sind ausdrücklich in .denox-core.json aufgelistet.
Alles außerhalb dieses Manifests bleibt unberührt, einschließlich:
- Ergänzte Funktionen
- Projektkonfiguration
- Umgebungsdateien
- anwendungsbezogener Code
Zusätzliche Aktualisierungsmodi:
denox upgrade --dry-run
denox upgrade --interactive
denox upgrade --ref=v1.2.0
Vor der Aktualisierung prüft die CLI, ob der Git-Arbeitstree sauber ist. Nicht committe Änderungen führen zur Abbruch der Operation, es sei denn, dies wird explizit erzwungen, wodurch ein versehentlicher Datenverlust vermieden wird.
Erstellung von Seiten
Die CLI unterstützt außerdem das auf Dateien basierende Routing des Frameworks.
denox g page docs/faq
oder
denox g page items/[id]
Nach der Erstellung der Seite wird die Routing-Tabelle automatisch neu generiert.
Philosophie hinter der DenoX CLI
Die CLI spiegelt das Framework wider: Konventionen statt Konfiguration, ohne die Kontrolle aufzugeben.
Diese Prinzipien zeigen sich in konkreten Regeln: Bestehende Dateien bleiben unverändert, manuell bearbeitete Quellen werden nicht umgeschrieben, zerstörerische Befehle bieten --dry-run, Framework-eigene Module können nicht leichtfertig gelöscht werden, OpenAPI bleibt mit den Routen verbunden, und Framework-Dateien bleiben vom Anwendungscode getrennt.
Zusammen führt das zu einer kleinen, vorhersehbaren CLI: weniger Boilerplate und ohne Verstecken dessen, was sich geändert hat.