Saltar al contenido

La sección plugins

Dónde se configura cada plugin, por qué su configuración vive separada de su registro y de su permiso, y el recorrido completo de los tres pasos que hacen falta para que un plugin exista de verdad.

La sección

Los tres pasos, y por qué son tres

La pregunta razonable es por qué no basta con uno. La respuesta es que los tres responden a preguntas distintas y a públicos distintos:

paso responde a quién lo lee
dependencia ¿qué código entra en el binario? Cargo
registro ¿qué está activo en esta aplicación? el builder, al arrancar
permiso ¿quién tiene derecho a invocarlo? el manifiesto, en cada llamada
configuración ¿con qué ajustes funciona? el propio plugin, al inicializarse

Juntarlos en uno significaría que añadir una dependencia concede permiso automáticamente, que es exactamente la propiedad que este framework no quiere. Que abrir la puerta cueste un fichero aparte es el diseño, no la torpeza.

El atajo, y por qué conviene revisarlo

El CLI hace los tres pasos de golpe:

Shell
bun run tauri add dialog

Eso añade la dependencia de Rust, el paquete de JavaScript, la llamada al builder, y un permiso por defecto en tu fichero de capabilities. Es la forma recomendada de instalar un plugin oficial.

Y conviene abrir el fichero de capabilities después, cada vez. El permiso que añade es el conjunto por defecto del plugin, que suele ser razonable y no siempre es el mínimo que tú necesitas. Ese fichero es el documento que define la superficie de tu aplicación, y merece leerse cuando cambia. Fase V.

Cuándo la configuración no puede ir en el fichero

La sección plugins es estática, como todo lo demás en la configuración. Si un plugin necesita un valor que solo se conoce en ejecución —una ruta calculada, un valor de una variable de entorno, algo que depende del sistema— no cabe ahí.

La salida es que casi todos los plugins ofrecen un constructor con opciones, así que la configuración se pasa al registrarlos:

Rust
// En vez de la sección del fichero, valores calculados al registrar..plugin(    tauri_plugin_lo_que_sea::Builder::new()        .algo(calculado_en_ejecucion())        .build(),)

La regla es la del nivel 7.5, otra vez: lo que puede depender de la ejecución no cabe en un fichero estático. Y una advertencia: si pones la configuración en los dos sitios, el orden de precedencia depende del plugin. Elige uno.