SvelteKit 3 entra en fase de candidata con cambios disruptivos

Fuentes: The SvelteKit 3 Release Candidate is here

El framework SvelteKit ha alcanzado la fase de release candidate de su versión 3, según anunció el equipo de desarrollo. Si las pruebas de la comunidad transcurren sin contratiempos, la versión estable llegará próximamente sin nuevos cambios incompatibles respecto a SvelteKit 2. Para migrar aplicaciones existentes se ha publicado una tarea específica en la herramienta sv migrate.

Entre los cambios más relevantes destaca el traslado de la configuración de svelte.config.js a vite.config.ts, lo que permite al plugin de Vite acceder a los ajustes de forma inmediata. El alias $lib se reemplaza por #lib mediante subpath imports de Node, una función compatible de forma nativa con Vite y TypeScript. La configuración de TypeScript se simplifica al extender $app/tsconfig en lugar de ./.svelte-kit/tsconfig.json.

Los service workers se modernizan y pasan a importar utilidades desde $app/env, $app/paths y el nuevo $app/manifest, en lugar del antiguo módulo $service-worker. El manejo de variables de entorno deja de ser experimental y permite declararlas en src/env.ts con validación opcional mediante Standard Schema. La gestión de errores se amplía gracias a la compatibilidad con Svelte 5 y sus límites de error, y todos los errores pasan ahora por handleError, incluido el sourcemap de los stack traces.

El shallow routing se unifica con la función goto mediante la opción shallow: true. SvelteKit 3 requiere Vite 8, lo que aporta compilaciones más rápidas con Rolldown y la integración con la Vite Environment API. Las remote functions se mantienen como característica experimental. El equipo pide a la comunidad probar la actualización y reportar errores.