Dokumentacja

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

terminal
$ 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

verso build <input> --out <dir> [flags]

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
FlagaDomyślnieOpis
--out <dir>wymaganaKatalog wyjściowy
--format <esm|cjs>esmFormat modułów wygenerowanych plików
--ext <list>.vsRozszerzenia do uwzględnienia, oddzielone przecinkami
--strictwył.Kompiluj ze ścisłym wyszukiwaniem właściwości
--no-rawwył.Spraw, by {{{ }}} było błędem kompilacji
--minifywył.Zwiń białe znaki w statycznym HTML
--sourcemapwył.Generuj .js.map wskazujący z powrotem na szablon
--watchwył.Przebudowuj przy zmianach, łącznie z zależnościami partiali
Tryb obserwacji

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

verso render <file> [--data <path|->] [--out <file>]

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

verso check <input> [--strict] [--no-raw] [--format <human|json>]

Parsuje bez generowania czegokolwiek. Kończy się kodem niezerowym przy pierwszym błędzie, co czyni z niego tanią bramkę w CI:

.github/workflows/ci.yml
- 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

verso explain <file> [--tokens] [--tree]

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.

verso.config.json
{
  "strict": true,
  "allowRaw": false,
  "ext": [".vs", ".html.vs"],
  "minify": true
}

Kody wyjścia

KodZnaczenie
0Sukces
1Co najmniej jeden szablon nie skompilował się
2Złe użycie — nieznana flaga, brakujący argument
3Ścieżka wejściowa nie istnieje lub jest nieczytelna
4Renderowanie nie powiodło się w czasie działania (tylko render)
Tryb obserwacji nigdy się nie kończy

--watch działa dalej po błędzie i raportuje kolejne udane budowanie. Nie używaj go w CI — tam użyj check.