El equipo de Svelte llevó SvelteKit 3 a Release Candidate a comienzos de septiembre de 2026, pocos días después de publicar Svelte 5.57. La versión mayor del meta-framework reorganiza su integración con Vite, adopta los subpath imports de Node en lugar del alias $lib y confía la migración a una nueva herramienta de línea de comandos. Nada es aún definitivo, pero el camino de actualización ya es legible.
Una Release Candidate, todavía no una versión estable
SvelteKit 3 maduró a través de sucesivas preversiones, de 3.0.0-next.17 a 3.0.0-next.25 en el momento del anuncio de la Release Candidate. Ese estado indica que la superficie de la API está congelada: el equipo espera sobre todo comentarios del uso real antes de la versión final y no debería introducir más cambios que rompan compatibilidad. Los proyectos en producción harán bien en probar el cambio en una rama dedicada en lugar de actualizar con prisas.
El plugin de Vite en el centro de la reforma
La novedad estructural de esta versión es la reescritura de la arquitectura del plugin de Vite. SvelteKit se alinea con la evolución reciente de Vite y aclara la frontera entre framework y bundler, con acciones de formulario rehechas y varios ajustes del enrutado como resultado. Este giro hacia unos cimientos más modernos prolonga una tendencia de fondo en las herramientas de front-end.
De $lib a #lib: los imports internos adoptan una convención de Node
En un proyecto creado con la nueva herramienta, los imports internos ya no pasan por el alias propio $lib sino por #lib, que se apoya en el campo imports de package.json, es decir, los subpath imports estándar de Node.
{
"imports": {
"#lib/*": "./src/lib/*.js"
}
}
En la práctica, un import cambia de prefijo sin cambiar de destino:
- import { formatDate } from '$lib/utils';
+ import { formatDate } from '#lib/utils';
La ventaja es apoyarse en una convención comprendida de forma nativa por Node, los editores y las herramientas de test, sin ningún mecanismo propio del framework que configurar por ambos lados.
Svelte 5.57 llega en paralelo
Publicada en la misma ventana, la versión 5.57 de Svelte añade varias primitivas esperadas sin romper el código existente.
| Novedad | Qué aporta |
|---|---|
SvelteMap.getOrInsert y getOrInsertComputed | Leer una clave o inicializarla en una sola operación sobre una Map reactiva |
Tercer valor has de createContext() | Comprobar que un contexto se ha definido antes de intentar leerlo |
<select defaultValue> | Restablece el valor elegido al reiniciar un formulario |
Tipos exportados por svelte/server | RenderOutput, SyncRenderOutput, Csp y Sha256Source, útiles para el renderizado en servidor y las políticas CSP |
La migración confiada al comando sv
La herramienta sv alcanza la versión 1.0.0-next.0 y adopta una lógica de migración por tareas. Un comando dedicado aplica las transformaciones propias de SvelteKit 3, incluida la sustitución de $lib por #lib en los proyectos nuevos.
npx sv migrate sveltekit-3
Este enfoque por tareas coincide con la lógica de las herramientas de línea de comandos en general: operaciones concretas y repetibles cuyo resultado se relee en un diff antes de aceptarse.
Punto de atención: una Release Candidate no es una versión de producción. Sigue siendo prudente fijar la preversión exacta en el lockfile, volver a ejecutar la batería de pruebas tras la migración y vigilar los plugins de Vite de terceros, algunos de los cuales aún dan por hecha la arquitectura anterior.
Al congelar su API y estandarizar sus imports sobre Node, SvelteKit 3 apuesta por la previsibilidad antes que por la novedad espectacular.
Lo que conviene recordar
La Release Candidate marca la entrada de SvelteKit 3 en su recta final. Los dos cambios que conviene preparar son la reforma del plugin de Vite y el paso de $lib a #lib. El comando sv automatiza lo esencial de la actualización, mientras que Svelte 5.57 aporta en paralelo primitivas de API bienvenidas. Hasta que salga la versión final, probar en una rama dedicada sigue siendo la vía a seguir.
El paso de $lib a #lib parece un detalle cosmético y resulta, en la práctica, muy cómodo: un import comprendido de forma nativa por Node es un caso particular menos que gestionar entre editor, bundler y tests. Por mi parte, migrar con sv se ha mostrado fiable en proyectos recientes, siempre que se ejecute sobre un repositorio limpio y se relea el diff antes de aceptar. — Simon Janvier
Fuente: What’s new in Svelte: September 2026, en el blog oficial del proyecto.
