Referentie

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

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]

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
FlagStandaardBeschrijving
--out <dir>verplichtUitvoermap
--format <esm|cjs>esmModuleformaat van de gegenereerde bestanden
--ext <list>.vsKommagescheiden extensies om mee te nemen
--strictuitCompileren met strikt opzoeken van eigenschappen
--no-rawuitMaak van {{{ }}} een compileerfout
--minifyuitWitruimte in statische HTML samenvoegen
--sourcemapuit.js.map genereren die terugwijst naar het template
--watchuitOpnieuw bouwen bij wijzigingen, inclusief afhankelijkheden van partials
Watch-modus

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

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

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

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

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:

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

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

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.

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

Exitcodes

CodeBetekenis
0Gelukt
1Een of meer templates konden niet worden gecompileerd
2Verkeerd gebruik — onbekende flag, ontbrekend argument
3Invoerpad bestaat niet of is niet leesbaar
4Renderen mislukte tijdens runtime (alleen render)
Watch-modus stopt nooit

--watch blijft na een fout draaien en meldt de volgende geslaagde build. Niet gebruiken in CI — gebruik daar check.