Appearance
Memo - Support navigateur Svelte 4, Svelte 5 et builds TV legacy ​
Probleme traite ​
L'application doit continuer a fonctionner sur des environnements TV legacy, notamment le build npm run build:tizen6 destine aux televiseurs Tizen 6. La migration de Svelte 4 vers Svelte 5 doit donc etre evaluee sous l'angle de la compatibilite navigateur, pas seulement sous l'angle de la syntaxe Svelte.
Constat officiel ​
Svelte 4 ne publie pas de matrice officielle indiquant une version minimale de Chrome comparable a celle de Svelte 5.
Les elements officiels importants pour Svelte 4 sont les suivants :
- Le compilateur Svelte 4 conserve l'option
legacy: true. - Cette option genere du code compatible avec IE9/IE10 pour certains cas runtime, par exemple les usages reposant sur
element.dataset. - Le guide de migration Svelte 4 mentionne quelques APIs runtime pouvant poser probleme sur de tres vieux navigateurs, notamment
classList.toggle(name, boolean)et le constructeurCustomEvent. - Ces APIs peuvent necessiter des polyfills sur des cibles tres anciennes.
Svelte 5 publie une contrainte plus explicite : son support navigateur officiel commence a Chrome/Edge 87. La documentation Svelte 5 indique aussi que le runtime s'appuie sur des APIs plus modernes comme Proxy et ResizeObserver, et que l'ancienne option compiler legacy n'existe plus dans le meme sens.
Impact pour Tizen 6 ​
Le test de typologie appareil du projet utilise un user-agent Tizen 6 representatif :
text
Mozilla/5.0 (SMART-TV; LINUX; Tizen 6.0) AppleWebKit/537.36 (KHTML, like Gecko) 76.0.3809.146/6.0 TV Safari/537.36Ce runtime correspond a un moteur Chromium 76, donc :
- confortable pour Svelte 4 dans la plupart des cas, sous reserve des polyfills et du build target ;
- inferieur au minimum officiel Svelte 5, qui est
Chrome/Edge 87; - potentiellement expose a des erreurs runtime apres migration Svelte 5, meme si le build compile.
Build concerne ​
Le script actuel est :
sh
npm run build:tizen6Il execute d'abord :
sh
npm run buildpuis post-traite le dossier build/ avec tvkit :
sh
npx tvkit build ./build --out ./build-tvkit --force --browser "Tizen 6, WebOS 6"Cette chaine signifie que le build SvelteKit standard est produit avant intervention de tvkit. La compatibilite finale depend donc de trois niveaux :
- ce que Svelte/SvelteKit emet dans le build initial ;
- ce que Vite/esbuild transpile selon la configuration courante ;
- ce que
tvkitsait transformer ou polyfiller apres coup.
tvkit doit etre considere comme un post-processeur utile, mais pas comme une garantie de compatibilite avec toutes les exigences runtime de Svelte 5.
Decision technique recommandee ​
Tant que Tizen 6 reste une cible de production, la migration Svelte 5 doit etre classee comme un changement a risque moyen a eleve pour le build build:tizen6.
La recommandation est de :
- conserver Svelte 4 pour les builds TV legacy tant que la migration Svelte 5 n'a pas ete validee sur cible reelle ;
- eviter de migrer massivement les composants en runes tant que le runtime Tizen 6 n'est pas valide ;
- tester une migration Svelte 5 sur branche dediee, en gardant d'abord les composants en syntaxe legacy Svelte 4 ;
- ne pas considerer un build local reussi comme une preuve suffisante de compatibilite Tizen 6.
Checklist de validation Svelte 5 pour Tizen 6 ​
Avant d'accepter Svelte 5 pour build:tizen6, valider au minimum :
npm run build:tizen6reussit sans erreur ;npm run preview:tizen6sert correctement le contenu genere ;- l'application demarre sur une TV Tizen 6 reelle ou un emulateur equivalent ;
- aucune erreur runtime bloquante n'apparait dans la console distante ;
- la navigation telecommande fonctionne ;
- les carrousels, pages de contenu et overlays principaux s'affichent correctement ;
- la lecture video et HLS fonctionne ;
- le bridge TV continue de recevoir et emettre les evenements attendus ;
- les layouts CSS ne presentent pas de regression visible, notamment sur les styles scopes et les selecteurs complexes ;
- les polyfills necessaires sont explicitement identifies et documentes.
Reference rapide ​
| Sujet | Svelte 4 | Svelte 5 |
|---|---|---|
| Version Chrome minimale officielle | Non publiee sous forme de matrice | Chrome/Edge 87+ |
| Option compiler legacy | Disponible | Supprimee dans son ancien sens |
| Tizen 6 / Chromium 76 | Cible raisonnable avec build adapte | Sous le support officiel |
Niveau de risque pour build:tizen6 | Maitrisable | Moyen a eleve sans validation device |