Référence de la CLI
L’exécutable verso précompile les templates, les rend avec des données d’exemple et les vérifie en CI. Il ne lit aucun fichier de configuration tant que vous ne lui en indiquez pas.
Les commandes en bref
$ 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
Compile chaque template sous <input> et écrit un module par fichier, en conservant l’arborescence.
$ 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
| Option | Défaut | Description |
|---|---|---|
--out <dir> | obligatoire | Répertoire de sortie |
--format <esm|cjs> | esm | Format de module des fichiers émis |
--ext <list> | .vs | Extensions à prendre en compte, séparées par des virgules |
--strict | désactivé | Compiler avec la recherche stricte des propriétés |
--no-raw | désactivé | Faire de {{{ }}} une erreur de compilation |
--minify | désactivé | Réduire les espaces du HTML statique |
--sourcemap | désactivé | Émettre un .js.map qui renvoie au template |
--watch | désactivé | Reconstruire à chaque changement, y compris des dépendances de partials |
Les dépendances viennent de template.deps : modifier un partial reconstruit chaque template qui l’inclut — pas seulement le fichier touché.
verso render
Génère le rendu d’un template et écrit le résultat sur stdout, ou dans un fichier avec --out. Les données viennent d’un fichier JSON, ou de stdin si vous passez -.
$ 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 -
C’est le moyen le plus rapide de vérifier un template avec de vraies données, et cela rend les templates testables depuis un script shell sans lanceur de tests.
verso check
Analyse sans rien émettre. Sort avec un code non nul au premier échec, ce qui en fait une barrière de CI peu coûteuse :
- name: Check templates
run: npx verso check views/ --strict --no-raw --format json
Avec --format json, chaque diagnostic est un objet par ligne — fichier, ligne, colonne, règle et message —, que la plupart des outils d’annotation consomment directement.
verso explain
Affiche le JavaScript généré par Verso. Utile quand un template se comporte de façon inattendue et que vous préférez lire la sortie plutôt que deviner.
$ verso explain views/hello.vs
function template(data, opts) {
let out = '<h1>';
out += esc(data?.title);
out += '</h1>';
return out;
}
--tokens affiche le flux de jetons et --tree l’arbre des nœuds. Les deux sont assez stables pour être comparés d’une version à l’autre, et c’est exactement ce que fait notre suite de tests.
Fichier de configuration
Lu uniquement si vous le demandez avec --config. Il n’y a pas de recherche automatique de verso.config.js, car une configuration implicite rend les échecs de build difficiles à reproduire.
{
"strict": true,
"allowRaw": false,
"ext": [".vs", ".html.vs"],
"minify": true
}
Codes de sortie
| Code | Signification |
|---|---|
0 | Succès |
1 | Un ou plusieurs templates n’ont pas pu être compilés |
2 | Mauvaise utilisation — option inconnue, argument manquant |
3 | Le chemin d’entrée n’existe pas ou n’est pas lisible |
4 | Échec du rendu à l’exécution (render uniquement) |
--watch continue après un échec et signale le build réussi suivant. Ne l’utilisez pas en CI — utilisez check.