Saltar al contenido

El esquema: validar antes de compilar

La configuración tiene un esquema JSON publicado, y usarlo convierte una clase entera de errores en un aviso del editor. Cómo se engancha, qué caza y qué no, y por qué es la pieza más barata de todo el track.

Engancharlo

Una línea, la primera del fichero:

JSON
{  "$schema": "../node_modules/@tauri-apps/cli/config.schema.json",  "productName": "Catálogo"}

Esa clave no es configuración: es la convención con la que un editor sabe qué esquema aplicar a un fichero JSON. El asistente la pone, y merece la pena comprobar que sigue ahí y que la ruta es correcta, porque si el CLI está instalado en otro sitio —un monorepo, una raíz distinta— la ruta relativa cambia y la validación deja de funcionar sin avisar de nada.

La comprobación de que funciona es inmediata: escribe una clave inventada dentro del objeto raíz. Si tu editor no la subraya, el esquema no está enganchado.

Qué caza

La lectura de la tabla es la lección: el esquema caza los errores de forma, que son la mayoría de los que se cometen editando a mano, y ninguno de los errores de intención. Las dos últimas filas son las del nivel 5.4, y siguen ahí.

Usarlo como documentación

Esta es la parte que casi nadie aprovecha. La configuración de Tauri tiene bastante más de cien claves, y la lista completa, con su tipo, su valor por defecto y su descripción, está dentro del esquema. Con él enganchado:

  • Escribir comillas dentro de cualquier objeto ofrece las claves válidas en ese punto exacto del anidamiento.
  • Pasar el ratón por una clave existente explica qué hace y qué acepta.
  • Las claves con lista cerrada de valores —la categoría, los formatos, el estilo de barra de título— ofrecen la lista.

Es más rápido y más fiable que buscar en la documentación, porque el esquema viene con la versión del CLI que tienes instalada. Una guía de internet puede estar describiendo otra versión; el esquema, no.

Validar sin compilar

Como es un esquema estándar, se puede validar en integración continua sin arrancar nada de Rust. Es un paso de segundos que caza un error de configuración antes de gastar los minutos de una compilación completa:

Shell
# Con cualquier validador de JSON Schemabunx ajv-cli validate \  -s node_modules/@tauri-apps/cli/config.schema.json \  -d src-tauri/tauri.conf.json

Merece la pena por dos razones. La primera, el orden: falla en segundos en vez de en minutos. La segunda, y más importante, también valida las variantes por plataforma, que en tu máquina no se comprueban porque solo se fusiona la de tu sistema. Un error en la variante de Windows escrito desde macOS no lo ve nadie hasta que alguien compila para Windows.

Ese detalle es el que justifica el paso por sí solo. El nivel 8.4 acaba de explicar lo fácil que es equivocarse en una variante; esto es la red.