1.9 KiB
name, description, metadata
| name | description | metadata | ||
|---|---|---|---|---|
| ticket74-f1-web-bundle-transport-seam | Deux artefacts Vite (dist/dist-web), mode `web` portable Windows, et le câblage anti-divergence de la constante de transport. |
|
Le frontend produit deux artefacts Vite depuis les mêmes sources :
frontend/dist→ transporttauri(desktop,build.frontendDist) —npm run build.frontend/dist-web→ transporthttp(packagé en ressource Tauriweb/) —npm run build:web.npm run build:bundleproduit les deux : c'est le point d'entrée du packaging Tauri.
Le mode web passe par --mode web + frontend/.env.web (VITE_TRANSPORT=http), jamais par un préfixe inline VITE_TRANSPORT=http vite build : non portable Windows/NSIS, cible active du bundle. .env.web est versionné (non gitignoré) ; dist-web/ est ignoré.
Anti-divergence de __IDEA_TRANSPORT__ : frontend/src/app/transport.ts expose transportFromEnv(value), importé à la fois par di.tsx (resolveTransport/shouldUseHttp) et par vite.config.ts, qui lui passe VITE_TRANSPORT via loadEnv(mode). Même variable + même prédicat = une seule source. Modifier le prédicat déplace constante et runtime ensemble. vitest.config.ts réplique le define via le même helper.
La constante est publiée sur window dans main.tsx : define ne remplace que les occurrences existantes et une constante non référencée serait tree-shakée ; l'affectation est un effet de bord qui survit à la minification. Elle reporte le transport hors mock (VITE_USE_MOCK reste un switch distinct).
Pour identifier le transport d'un bundle bâti : grep -o '__IDEA_TRANSPORT__="[a-z]*"' dist*/assets/*.js. Ne pas se fier à la présence de __TAURI_INTERNALS__ ni à un nom de symbole minifié : les deux jeux d'adapters sont présents dans les deux bundles, un grep ne les discrimine pas.