Generated client entry runs before the root is parsed (async script in <head>)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 25/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- typescript, vite
- Domaine
- build-system, frontend
Piste de recherche
The injected script tag is generated in src/ssr/index.ts around lines 1387-1391, where the entry is placed before </head> with the async attribute. Read how the plugin chooses between async and deferred output, and check the linked repro's /, /?defer and /stream cases. Done means a fix that hydrates the slow-HTML and streamed pages without making streamed pages wait for their slowest read. Expect a design discussion about the trade-off before code.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
@solidjs/vite-plugin 3.0.0-next.49 injects the generated client entry before </head> as <script type="module" async>:
https://github.com/solidjs/solid-vite-plugin/blob/44d90fd7fb8ae6d0efc6a42c82ad2d91adc3658a/src/ssr/index.ts#L1387-L1391
An async module runs as soon as it loads. When the HTML arrives slowly, the entry can run while the browser is still parsing the body. Hydration then reaches nodes that do not exist yet and fails with Cannot read properties of null (reading 'nextSibling') (or 'firstChild'). Nothing after that point hydrates.
Repro: https://stackblitz.com/github/feledori/solid-async-entry-repro
/: a long page served at 2 kB per 50 ms. Hydration fails on every load, and the buttons near the end do nothing./?defer: the same page withasyncremoved. It hydrates every time./stream: a streamed page with a 3 s<Loading>read.DOMContentLoadedfires when the response ends (~3 s), while the async entry starts hydration at ~100 ms. So waiting forDOMContentLoaded, or droppingasync, would make every streamed page wait for its slowest read.
- Langage dominant
- TypeScript
- Étoiles
- 522
- Forks
- 73
- Merge moyen
- 1 j 4 h
- PR mergées (30 j)
- 35
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de solidjs/solid-vite-plugin
-
Test environment detection doesn't consider Vitest workspacesPeut-être pris @carloitaben l’a pris il y a 56 jours. Ouverte1.x
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
solidjs/solid-vite-plugin#205 · 1 commentaire · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Dev: a stylesheet shared by the entry and a lazy component moves after the lazy component's stylesOuverte
Difficulté 3/5 Une demi-journée Accessibilité débutants 62/100
solidjs/solid-vite-plugin#425 ·
Les mainteneurs répondent en général sous 1 jour
-
[3.0.0-next.50 / next] SSR build: the $$moduleUrl export added to a Worker main module stops workerd from startingPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 3/5 Une demi-journée Accessibilité débutants 55/100
solidjs/solid-vite-plugin#420 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
solidjs/solid-vite-plugin#419 ·
Les mainteneurs répondent en général sous 1 jour
-
start.node: node.js imports node:http before start.instrument runs, so HTTP instrumentation misses the serverPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 4/5 1-2 jours Accessibilité débutants 30/100
solidjs/solid-vite-plugin#418 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de solidjs/solid-vite-plugin
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
polarsource/polar#15580 ·
Les mainteneurs répondent en général sous 1 jour
-
accepted bug via-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 69/100
pingdotgg/t3code#20931 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug/1-unconfirmed kind/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 83/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
ranxianglei/billion-context#3583 ·
Les mainteneurs répondent en général sous 1 jour