Ir al contenido

El medio de los artesanos de la web miércoles, 26 de agosto de 2026

MailStudio
Front-end

SvelteKit 3 llega a candidata de lanzamiento: la configuración se traslada a Vite y llegan las funciones remotas

SvelteKit 3 llega a candidata de lanzamiento: la configuración se traslada a Vite, las funciones remotas acercan el código de servidor a los componentes y un comando de migración se encarga de lo esencial. Un repaso a los cambios antes de la…

SvelteKit 3 ha entrado en fase de candidata de lanzamiento. El equipo anuncia una versión estable «en un futuro próximo, sin nuevas rupturas», lo que convierte a esta RC en la base sobre la que los proyectos pueden empezar a planificar su actualización. No es un simple lavado de cara: la configuración cambia de archivo, las funciones remotas reorganizan la comunicación cliente-servidor y un comando de migración asume la mayor parte del trabajo mecánico.

La configuración se traslada a Vite

El cambio más visible afecta a cómo se configura un proyecto. La configuración abandona svelte.config.js por vite.config.ts: SvelteKit 3 se apoya ya por completo en Vite 8, que exige, y en Svelte 5. De paso, el histórico alias $lib deja lugar a importaciones por subruta #lib, y la configuración de TypeScript se simplifica extendiendo $app/tsconfig en vez de un archivo generado y verboso.

El giro alinea a SvelteKit con las herramientas que ya usa la mayoría de los proyectos JavaScript modernos. Tiene un coste: los archivos de configuración existentes deben reescribirse, y las integraciones que leían svelte.config.js tendrán que adaptarse.

Las funciones remotas, el corazón de la versión

La funcionalidad que vertebra esta versión tiene nombre: las funciones remotas. Permiten llamar a código de servidor directamente desde un componente, con inferencia de tipos de extremo a extremo — sin archivo +server.ts, sin cablear a mano las llamadas fetch y sin mantener manualmente la coherencia entre los tipos de la petición y los de la respuesta. Cuatro primitivas cubren los usos habituales: query para leer datos, form para los envíos de formulario, command para las mutaciones y prerender para los valores calculados en compilación.

// data.remote.ts
import { query } from '$app/server';

export const listArticles = query(async () => {
  // exécuté sur le serveur, typé jusque dans le composant
  return await db.articles.findMany();
});

En el componente, la función se importa y se espera como cualquier función asíncrona, y la frontera de red pasa a ser un detalle de implementación en vez de un contrato que mantener.

Al retirar el archivo +server.ts de una simple lectura de datos, SvelteKit 3 acerca el código de servidor al componente que lo consume.

Punto de atención. Las funciones remotas siguen tras una marca experimental en esta RC. Esbozan la dirección que toma el framework, pero la API todavía puede moverse: llevarlas a producción hoy implica aceptar ajustes en las próximas versiones.

Enrutado superficial, errores y trazado

Se revisan varias API de más bajo nivel. El enrutado superficial queda integrado en goto(), sin pasar por un módulo aparte. La firma de error() evoluciona: el mensaje se convierte en un argumento de pleno derecho. invalidateAll() pasa a llamarse refreshAll(), quedando el nombre antiguo obsoleto durante la transición.

Aparecen dos módulos nuevos. $app/manifest expone en ejecución información sobre los recursos, las páginas prerenderizadas y las rutas; $app/service-worker, junto con la disponibilidad de $app/paths en ese contexto, mejora la escritura de service workers. El trazado sale del dominio experimental y se admiten los sourcemaps de producción, también para vincular una pila de llamadas con su código fuente.

Migración: una herramienta, algunas rupturas

SvelteKit ofrece un comando de migración que asume la mayor parte del trabajo y enumera los puntos a tratar a mano. Un proyecto nuevo se genera con la misma familia de herramientas en su versión «next».

# migrer un projet existant
npx sv@next migrate sveltekit-3 --tasks all --confirm

# démarrer un nouveau projet
npx sv@next create my-new-app

La tabla siguiente resume los desplazamientos estructurales que conviene anticipar.

ElementoSvelteKit 2SvelteKit 3
Archivo de configuraciónsvelte.config.jsvite.config.ts
Alias de biblioteca$lib#lib
Refresco de datosinvalidateAll()refreshAll()
Base requeridaVite anterior, Svelte 5Vite 8, Svelte 5
Código de servidor desde un componente+server.ts + fetchfunciones remotas (experimental)

Lo que hay que recordar

SvelteKit 3 no es una revisión cosmética: el traslado de la configuración a Vite y el cambio de nombre de varias API imponen una migración, que la herramienta dedicada hace por fortuna poco dolorosa. La verdadera promesa está en las funciones remotas, que buscan hacer desaparecer la capa de API manual entre el servidor y el componente — pero siguen siendo experimentales, y son ellas las que habrá que vigilar de cara a la versión estable.

Adopté SvelteKit en varios proyectos de cliente precisamente por su capacidad de reducir el código de fontanería. Las funciones remotas van justo en esa línea: en una aplicación donde mantengo a mano una docena de rutas +server.ts y sus tipos, sustituirlas por llamadas tipadas directas es lo primero que me dieron ganas de probar de la RC. No las llevaré a producción mientras lleven la marca experimental, pero ya estoy reescribiendo la configuración para estar listo el día de la estable. — Simon Janvier

Para saber más: el anuncio oficial de la candidata de lanzamiento, «The SvelteKit 3 Release Candidate is here» en el blog de Svelte.

Compartir LinkedIn Bluesky Hacker News E-mail

Leer también