DenoX CLI: Tworzenie szkieletów projektów i funkcji bez utraty kontroli
Zainstaluj DenoX CLI, twórz szkielety aplikacji, generuj funkcje w stylu MVC za pomocą OpenAPI, bezpiecznie usuwaj moduły oraz aktualizuj pliki należące do frameworka, nie dotykając kodu aplikacji.
Jednym z głównych celów DenoX jest zmniejszenie ilości powtarzalnej pracy rozwojowej, nie odbierając przy tym kontroli inżynierom. Framework dostarcza własny interfejs wiersza poleceń jako pojedynczy plik TypeScript, który może tworzyć projekty, generować pełne funkcjonalności, bezpiecznie usuwać moduły oraz aktualizować sam framework.
W odróżnieniu od wielu nowoczesnych interfejsów wiersza poleceń, które wykorzystują dziesiątki pakietów, interfejs DenoX opiera się wyłącznie na wbudowanych możliwościach Deno.
Instalacja
Zainstaluj za pomocą jednego polecenia:
deno install -grA -n denox https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts
Lub uruchom go bez instalacji:
deno run -A https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts new my-shop
Interfejs wiersza poleceń to samodzielny plik: nie ma zewnętrznych zależności ani importów z samego frameworku.
Tworzenie projektu
Stworzenie nowego aplikacji to tylko jedno polecenie:
denox new my-shop
Scaffolding robi więcej niż tylko zapisuje szablon na dysku. Pobiera oficjalny starter, usuwa historię Git tego startera, tworzy czysty repozytorium, ustawia pole wersji z powrotem na 0.1.0, usuwa log zmian, przepisuje plik README pod nową nazwę oraz odpowiednio modyfikuje plik denox.config.ts.
W rezultacie otrzymujemy gotowe środowisko do rozwoju, które już samo przechodzi testy deno task ci projektu, bez konieczności ręcznego czyszczenia.
Działają również niestandardowe szablony:
denox new my-app --template=<repository>
Tworzenie kompletnego modułu
Największą zaletą interfejsu wiersza poleceń jest możliwość stworzenia całego modułu MVC za pomocą jednego polecenia.
denox g feature reviews
Zamiast pustych miejsc zastępczych, narzędzie generuje kompletną część API w formacie MVC: model i DTO, interfejs repozytorium wraz z implementacjami w pamięci i Deno KV, usługę, kontroler, ścieżki, opis OpenAPI umieszczony obok kodu oraz szkielet testu integracyjnego.
src/api/main.ts odbywa się automatycznie, dzięki czemu funkcjonalność jest dostępna bez konieczności ręcznego łączenia elementów.
OpenAPI wbudowane
Każda wygenerowana funkcjonalność posiada własny opis OpenAPI.
Konsekwencje:
- Dokumentacja znajduje się obok implementacji
- Testy parzystości ścieżek nadal przepuszczają testy
- Podczas uruchamiania:
deno task insomnia
automatycznie regeneruje kolekcję Insomnia.
Nie ma konieczności ręcznego utrzymywania oddzielnej dokumentacji API.
Bezpieczna generacja kodu
CLI zachowuje ostrożność podczas modyfikowania istniejącego kodu.
Gdy brakuje lub został zmieniony znacznik // denox:features, narzędzie odmawia ustalenia punktu wstawienia.
Mimo to tworzy nowe pliki z funkcjami, wyświetla dokładne linie, które należy wkleić ręcznie, i nie dotyka żadnego istniejącego pliku źródłowego.
Błędne nazwy lub duplikatowe identyfikatory funkcji powodują przerwanie działania polecenia przed zmianą struktury projektu.
Usuwanie funkcji
Operacja odwrotna jest równie ważna jak jej tworzenie.
denox rm feature reviews
Usuwanie ma na celu uniknięcie uszkodzonych projektów.
CLI najpierw usuwa wszystkie odniesienia do danej funkcji w routerach.
Tylko po całkowitym odłączeniu aplikacji usuwane są pliki.
Nawet jeśli proces zostanie przerwany w połowie, projekt nie pozostaje z odnośnikami do brakujących plików.
Gdy praca zostanie zakończona, src/api/main.ts będzie odpowiadał stanowi przed generowaniem: nie będą istnieć samotne odnośniki ani zbędne puste linie.
Zobacz wstępny przegląd za pomocą:
denox rm feature reviews --dry-run
Bazyowe moduły pozostają zamknięte. Próby usunięcia wbudowanych elementów — takich jak autoryzacja, użytkownicy, produkty, płatności, informacje zdrowotne i dane kontaktowe — są odrzucane.
Wgrzewanie aktualizacji frameworka
Utrzymuj projekty na bieżąco za pomocą:
denox upgrade
Aktualizacje nie zastępują całego drzewa struktur. Zmieniają się jedynie ścieżki należące do frameworka.
Ścieżki te są wyraźnie wymienione w pliku .denox-core.json.
Wszystko poza tym plikiem pozostaje nietknięte, w tym:
- Generowane funkcje
- Konfiguracja projektu
- Pliki środowiskowe
- Kod specyficzny dla aplikacji
Dodatkowe tryby aktualizacji:
denox upgrade --dry-run
denox upgrade --interactive
denox upgrade --ref=v1.2.0
Przed wgraniem aktualizacji interfejs CLI sprawdza, czy drzewo robocze Git jest czyste. Niezapisane zmiany powodują przerwanie operacji, chyba że zostanie to wymuszone, co zmniejsza ryzyko przypadkowej utraty danych.
Generowanie stron
CLI obsługuje również routowanie oparte na plikach w ramach tego frameworka.
denox g page docs/faq
lub
denox g page items/[id]
Po utworzeniu strony tabela routingu jest automatycznie regenerowana.
Filozofia stojąca za DenoX CLI
CLI odzwierciedla zasady frameworka: preferencja dla konwencji nad konfiguracją bez rezygnacji z kontroli.
Te zasady objawiają się w konkretnych regułach: istniejące pliki pozostają nietknięte, ręcznie edytowane źródła nie są przepisywane, polecenia niszczące oferują opcję --dry-run, moduły należące do frameworka nie mogą być przypadkowo usuwane, OpenAPI pozostaje powiązany z trasami, a pliki frameworka są oddzielone od kodu aplikacji.
Wszystko to sprawia, że powstaje mały, przewidywalny CLI: mniej kodu szablonowego i pełna przejrzystość co do dokonanych zmian.
Pozycje pokrewne
- Dlaczego JavaScript nadal dominuje w 2026: zamknięcia, asynchroniczność, strumienie i warstwy narzędziowe — zamknięcia, kompozycja obietnic, AbortController, iteratorzy, strumienie, WeakMap oraz dynamiczne importowanie — plus informacje o tym, w jakich przypadkach nadają się Node, TypeScript, React i Angular.
- TypeScript bez Node czy V8: porównanie wydajności binarnych plików scriptc z natywnymi — czas rozruchu, szybkość przetwarzania, przepustowość oraz kompromisy dotyczące zużycia CPU, gdy ten sam serwer HTTP napisany w TypeScript działa jako binarny plik scriptc zamiast w Node.js z V8.