Dokumentacja CLI
Program verso kompiluje szablony z wyprzedzeniem, renderuje je z przykładowymi danymi i sprawdza w CI. Nie czyta pliku konfiguracyjnego, dopóki go nie wskażesz.
Polecenia w skrócie
$ verso --help
verso build <input> --out <dir> compile templates to JavaScript
verso render <file> --data <json> render once and print to stdout
verso check <input> parse only, report errors
verso explain <file> print the emitted source
--config <path> load options from a JSON or JS file
--quiet errors only
--no-color disable ANSI colours (also honours NO_COLOR)
--version print version and exit
verso build
Kompiluje każdy szablon w <input> i zapisuje jeden moduł na plik, zachowując strukturę katalogów.
$ verso build views/ --out dist/views/ --format esm
views/page.vs → dist/views/page.js 3.1 kB
views/report.vs → dist/views/report.js 5.8 kB
views/partials/… → 4 files 2.2 kB
6 templates in 118 ms
| Flaga | Domyślnie | Opis |
|---|---|---|
--out <dir> | wymagana | Katalog wyjściowy |
--format <esm|cjs> | esm | Format modułów wygenerowanych plików |
--ext <list> | .vs | Rozszerzenia do uwzględnienia, oddzielone przecinkami |
--strict | wył. | Kompiluj ze ścisłym wyszukiwaniem właściwości |
--no-raw | wył. | Spraw, by {{{ }}} było błędem kompilacji |
--minify | wył. | Zwiń białe znaki w statycznym HTML |
--sourcemap | wył. | Generuj .js.map wskazujący z powrotem na szablon |
--watch | wył. | Przebudowuj przy zmianach, łącznie z zależnościami partiali |
Zależności pochodzą z template.deps, więc edycja partiala przebudowuje każdy szablon, który go dołącza — nie tylko plik, który zmieniłeś.
verso render
Renderuje jeden szablon i wypisuje wynik na stdout albo do pliku z --out. Dane pochodzą z pliku JSON albo ze stdin, gdy przekażesz -.
$ verso render views/invoice.vs --data fixtures/invoice.json > out.html
$ curl -s https://api.example.com/orders/41 \
| verso render views/order.vs --data -
To najszybszy sposób, by obejrzeć szablon na prawdziwych danych, a szablony stają się testowalne ze skryptu powłoki bez test runnera.
verso check
Parsuje bez generowania czegokolwiek. Kończy się kodem niezerowym przy pierwszym błędzie, co czyni z niego tanią bramkę w CI:
- name: Check templates
run: npx verso check views/ --strict --no-raw --format json
Z --format json każda diagnostyka to jeden obiekt na linię — plik, wiersz, kolumna, reguła i komunikat — który większość narzędzi do adnotacji przyjmie bezpośrednio.
verso explain
Wypisuje JavaScript generowany przez Verso. Przydatne, gdy szablon zachowuje się nieoczekiwanie i wolisz przeczytać wynik, niż zgadywać.
$ verso explain views/hello.vs
function template(data, opts) {
let out = '<h1>';
out += esc(data?.title);
out += '</h1>';
return out;
}
--tokens wypisuje strumień tokenów, a --tree drzewo węzłów. Oba są wystarczająco stabilne, by porównywać je między wersjami, i właśnie do tego używamy ich w testach.
Plik konfiguracyjny
Czytany tylko na żądanie przez --config. Nie ma automatycznego wyszukiwania verso.config.js, bo niejawna konfiguracja utrudnia odtworzenie błędów budowania.
{
"strict": true,
"allowRaw": false,
"ext": [".vs", ".html.vs"],
"minify": true
}
Kody wyjścia
| Kod | Znaczenie |
|---|---|
0 | Sukces |
1 | Co najmniej jeden szablon nie skompilował się |
2 | Złe użycie — nieznana flaga, brakujący argument |
3 | Ścieżka wejściowa nie istnieje lub jest nieczytelna |
4 | Renderowanie nie powiodło się w czasie działania (tylko render) |
--watch działa dalej po błędzie i raportuje kolejne udane budowanie. Nie używaj go w CI — tam użyj check.