CLI-referentie
Het programma verso compileert templates vooraf, rendert ze met voorbeelddata en controleert ze in de CI. Het leest geen configuratiebestand tenzij je ernaar verwijst.
Commando’s in één oogopslag
$ 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
Compileert elk template onder <input> en schrijft één module per bestand, met behoud van de mappenstructuur.
$ 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 | Standaard | Beschrijving |
|---|---|---|
--out <dir> | verplicht | Uitvoermap |
--format <esm|cjs> | esm | Moduleformaat van de gegenereerde bestanden |
--ext <list> | .vs | Kommagescheiden extensies om mee te nemen |
--strict | uit | Compileren met strikt opzoeken van eigenschappen |
--no-raw | uit | Maak van {{{ }}} een compileerfout |
--minify | uit | Witruimte in statische HTML samenvoegen |
--sourcemap | uit | .js.map genereren die terugwijst naar het template |
--watch | uit | Opnieuw bouwen bij wijzigingen, inclusief afhankelijkheden van partials |
Afhankelijkheden komen uit template.deps, dus een partial bewerken bouwt elk template opnieuw dat het gebruikt — niet alleen het bestand dat je aanraakte.
verso render
Rendert één template en schrijft het resultaat naar stdout, of met --out naar een bestand. Data komt uit een JSON-bestand, of van stdin als je - meegeeft.
$ 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 -
Dit is de snelste manier om een template met echte data te bekijken, en het maakt templates testbaar vanuit een shellscript zonder testrunner.
verso check
Parset zonder iets uit te voeren. Stopt met een code ongelijk aan nul bij de eerste fout, wat het een goedkope poort in de CI maakt:
- name: Check templates
run: npx verso check views/ --strict --no-raw --format json
Met --format json is elke melding één object per regel — bestand, regel, kolom, regel-id en bericht —, wat de meeste annotatietools direct kunnen verwerken.
verso explain
Toont het JavaScript dat Verso genereert. Handig als een template zich onverwacht gedraagt en je liever de uitvoer leest dan gokt.
$ verso explain views/hello.vs
function template(data, opts) {
let out = '<h1>';
out += esc(data?.title);
out += '</h1>';
return out;
}
--tokens toont de tokenstroom en --tree de knooppuntenboom. Beide zijn stabiel genoeg om tussen versies te vergelijken, en precies daarvoor gebruiken we ze in de testsuite.
Configuratiebestand
Alleen gelezen als je erom vraagt met --config. Er wordt niet automatisch naar verso.config.js gezocht, omdat impliciete configuratie buildfouten moeilijk reproduceerbaar maakt.
{
"strict": true,
"allowRaw": false,
"ext": [".vs", ".html.vs"],
"minify": true
}
Exitcodes
| Code | Betekenis |
|---|---|
0 | Gelukt |
1 | Een of meer templates konden niet worden gecompileerd |
2 | Verkeerd gebruik — onbekende flag, ontbrekend argument |
3 | Invoerpad bestaat niet of is niet leesbaar |
4 | Renderen mislukte tijdens runtime (alleen render) |
--watch blijft na een fout draaien en meldt de volgende geslaagde build. Niet gebruiken in CI — gebruik daar check.