Skip to main content

Types de projet

SvelteKit offre un rendu configurable, ce qui vous permet de construire et déployer votre projet de différentes manières. Avec SvelteKit vous pouvez construire tous les types d’application listés ci-dessous, et bien plus encore. Les paramètres de rendu ne sont pas mutuellement exclusifs, et vous pouvez tout à fait choisir de manière optimale comment rendre différentes parties de votre application.

Si vous n’avez vraiment réfléchi à la manière dont vous souhaitez construire votre application, ne vous inquiétez pas ! La façon dont votre application est construite, déployée et rendue est contrôlée par l’adaptateur que vous avez choisi et un peu de configuration, et tout ça peut être modifié plus tard. La structure de projet et le routing sont exactement les mêmes quelque soit le type de projet que vous choisissez.

Rendu par défaut

Par défaut, lorsque quelqu’un visite un site, SvelteKit va rendre la première page avec du rendu côté serveur (SSR) et les pages suivantes avec du rendu côté client (CSR). L’utilisation du SSR pour le rendu initial améliore le référencement (SEO) et la performance perçue du chargement de page initial. Le rendu côté client prend ensuite le relais et met à jour la page sans avoir besoin de re-rendre les composants en commun, ce qui est généralement plus rapide et évite un flash lorsque de la navigation entre les pages. Les applications construites avec cette approche de rendu hybride sont aussi appelée “applications transitionnelles”.

Génération de site statique

Vous pouvez utiliser SvelteKit comme un générateur de site statique (SSG) qui pré-construit entièrement votre site avec du rendu statique en utilisant l’adaptateur adapter-static. Vous pouvez aussi utiliser l’option de pré-rendu pour pré-construire uniquement certaines pages, et choisir un autre adaptateur avec lequel vous ferez du rendu dynamique côté serveur pour les autres pages.

Les outils servant uniquement à faire de la génération de site statique peuvent optimiser le processus de pré-rendu de manière plus efficace lorsque vous construisez un très grand nombre de pages. Lorsque vous travaillez sur des sites de grande taille générés de manière statique, vous pouvez réduire votre temps de compilation grâce à la méthode d’Incremental Static Regeneration (ISR) si vous vous utilisez l’adpateur adapter-vercel. Et à la différence d’outils de SSGs dédiés, SvelteKit permet de mélanger efficacement différents types de rendu pour différentes pages.

SPA

Les SPAs (applications sur une seule page) utilisent exclusivement du rendu côté client (CSR). Vous pouvez construire des SPAs avec SvelteKit. Comme pour tous les types d’application SvelteKit, vous pouvez écrire votre backend en SvelteKit ou avec un autre langage ou framework. Si vous construisez une application sans aucun backend ou avec un backend séparé, vous pouvez simplement ignorer les parties de cette documentation traitant des fichiers server.

MPA

SvelteKit n’est généralement pas utilisé pour construire des applications multi-pages au sens traditionnel. Toutefois, SvelteKit vous permet de supprimer tout le code JavaScript d’une page avec csr = false, ce qui déclenchera le rendu des pages suivantes sur le serveur, ou bien vous pouvez utiliser data-sveltekit-reload pour faire le rendu de liens spécifiques sur le serveur.

Backend séparé

Si votre backend est écrit dans un autre langage comme Go, Java, PHP, Ruby, Rust, ou C#, il y a plusieurs manières de déployer votre application. La méthode recommandée serait de déployer votre frontend SvelteKit séparément de votre backend en utilisant l’adaptateur adapter-node ou un adaptateur serverless. Certaines personnes préfèrent ne pas avoir à gérer un deuxième processus et décident de déployer leur application en tant que SPA servie par leur serveur de backend, mais notez tout de même que les SPAs ont un référencement et des performances dégradées.

Si vous utilisez un backend externe, vous pouvez simplement ignorer les parties de cette documentation traitant des fichiers server. Vous pouvez également vous référer à la FÀQ concernant les appels à un backend externe.

Application serverless

Les applications SvelteKit sont simples à lancer sur des plateformes serverless. L’adaptateur zéro config par défaut va automatiquement exécuter votre application sur un certain nombre de plateformes supportées, mais vous pouvez également utiliser les adaptateurs adapter-vercel, adapter-netlify, ou adapter-cloudflare pour avoir accès à des configurations spécifiques par plateforme. Des adaptateurs gérés par la communauté vous permettent de déployer votre application sur quasiment tous les environnements serverless existants. Certains de ces adaptateurs comme adapter-vercel et adapter-netlify offrent une option edge, afin de fournir du rendu sur edge pour améliorer la latence.

Votre propre serveur

Vous pouvez déployer sur votre propre serveur ou VPS en utilisant adapter-node.

Conteneur

Vous pouvez utiliser adapter-node pour exécuter votre application SvelteKit au sein d’un conteneur comme Docker ou LXC.

Librairie

Vous pouvez créer une librairie que d’autres applications Svelte peuvent consommer en utilisant l’add-on SvelteKit @sveltejs/package. Il vous suffit de choisir l’option librairie lorsque vous exécutez sv create.

Application hors-ligne

SvelteKit offre un support complet pour les service workers vous permettant de construire tout types d’applications comme des applications hors-ligne et des PWA (Progressive Web Apps).

Application mobile

Vous pouvez transformer votre SPA SvelteKit en application mobile grâce à Tauri ou Capacitor. Les fonctionnalités mobile comme la caméra, la géolocalisation et les notifications push sont disponibles via des plugins pour les deux plateformes.

Ces plateformes de développement mobile fonctionnent en lançant un serveur web local, puis en servant votre application comme un hôte statique sur votre téléphone. L’option bundleStrategy: 'single' peut vous être utile pour limiter le nombre de requêtes effectuées. Par ex. au moment où ces lignes sont écrites, le serveur local de Capacitor utilise HTTP/1, qui limite le nombre de connexions simultanées.

Application desktop

Vous pouvez transformer une SPA SvelteKit en application desktop grâce à Tauri, wails, ou electron.

Extension de navigateur

Vous pouvez construire des extensions navigateur en utilisant soit adapter-static ou des adaptateurs de la communauté spécialement conçus pour les extensions navigateur.

Appareil embarqué

Grâce à son rendu performant, Svelte peut être exécuté sur les appareils de faible puissance. Les appareils embarqués comme les micro-contrôlleurs et les télévisions peuvent limiter le nombre de connexions simultanées. Pour réduire le nombre de connexions simultanées, l’option bundleStrategy: 'single' peut vous être utile dans cette configuration de déploiement.

Modifier cette page sur Github