CLI-Referenz
Das Programm verso kompiliert Templates vorab, rendert sie mit Beispieldaten und prüft sie in der CI. Es liest keine Konfigurationsdatei, solange Sie es nicht auf eine verweisen.
Befehle im Überblick
$ 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
Kompiliert jedes Template unter <input> und schreibt pro Datei ein Modul, wobei die Verzeichnisstruktur erhalten bleibt.
$ 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
| Flag | Standard | Beschreibung |
|---|---|---|
--out <dir> | erforderlich | Ausgabeverzeichnis |
--format <esm|cjs> | esm | Modulformat der erzeugten Dateien |
--ext <list> | .vs | Kommagetrennte Endungen, die berücksichtigt werden |
--strict | aus | Mit striktem Nachschlagen von Eigenschaften kompilieren |
--no-raw | aus | {{{ }}} zum Kompilierfehler machen |
--minify | aus | Leerraum in statischem HTML zusammenfassen |
--sourcemap | aus | .js.map erzeugen, das auf das Template zurückzeigt |
--watch | aus | Bei Änderungen neu bauen, einschließlich Abhängigkeiten von Partials |
Abhängigkeiten kommen aus template.deps, eine Änderung an einem Partial baut also jedes Template neu, das es einbindet — nicht nur die Datei, die Sie angefasst haben.
verso render
Rendert ein Template und schreibt das Ergebnis nach stdout oder mit --out in eine Datei. Die Daten kommen aus einer JSON-Datei oder von stdin, wenn Sie - angeben.
$ 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 -
So prüft man ein Template am schnellsten mit echten Daten, und Templates werden aus einem Shell-Skript testbar, ganz ohne Test-Runner.
verso check
Parst, ohne etwas auszugeben. Beendet sich beim ersten Fehler mit einem Code ungleich null, was es zu einer billigen CI-Schranke macht:
- name: Check templates
run: npx verso check views/ --strict --no-raw --format json
Mit --format json ist jede Meldung ein Objekt pro Zeile — Datei, Zeile, Spalte, Regel und Nachricht —, das die meisten Annotationswerkzeuge direkt verarbeiten können.
verso explain
Gibt das JavaScript aus, das Verso erzeugt. Nützlich, wenn sich ein Template unerwartet verhält und Sie lieber die Ausgabe lesen als raten.
$ verso explain views/hello.vs
function template(data, opts) {
let out = '<h1>';
out += esc(data?.title);
out += '</h1>';
return out;
}
--tokens gibt den Token-Strom aus und --tree den Knotenbaum. Beide sind stabil genug, um sie zwischen Versionen zu vergleichen, und genau dafür nutzen wir sie in der Testsuite.
Konfigurationsdatei
Wird nur gelesen, wenn Sie sie mit --config anfordern. Eine automatische Suche nach verso.config.js gibt es nicht, weil implizite Konfiguration Build-Fehler schwer reproduzierbar macht.
{
"strict": true,
"allowRaw": false,
"ext": [".vs", ".html.vs"],
"minify": true
}
Exit-Codes
| Code | Bedeutung |
|---|---|
0 | Erfolg |
1 | Ein oder mehrere Templates ließen sich nicht kompilieren |
2 | Falsche Verwendung — unbekanntes Flag, fehlendes Argument |
3 | Eingabepfad existiert nicht oder ist nicht lesbar |
4 | Rendern zur Laufzeit fehlgeschlagen (nur render) |
--watch läuft nach einem Fehler weiter und meldet den nächsten erfolgreichen Build. Nicht in der CI verwenden — dort check nehmen.