Generated client entry runs before the root is parsed (async script in <head>)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript, vite
- Área
- build-system, frontend
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
@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.
- Lenguaje dominante
- TypeScript
- Estrellas
- 522
- Forks
- 73
- Merge medio
- 1 d 4 h
- PR fusionados (30 d)
- 35
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de solidjs/solid-vite-plugin
-
Test environment detection doesn't consider Vitest workspacesPosiblemente ocupada @carloitaben la tomó hace 57 días. Abierto1.x
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
solidjs/solid-vite-plugin#205 · 1 comentario · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
solidjs/solid-vite-plugin#428 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
solidjs/solid-vite-plugin#427 ·
Los mantenedores suelen responder en 1 día
-
Dev: a stylesheet shared by the entry and a lazy component moves after the lazy component's stylesAbierto
Dificultad 3/5 Medio día Aptitud para principiantes 62/100
solidjs/solid-vite-plugin#425 ·
Los mantenedores suelen responder en 1 día
-
[3.0.0-next.50 / next] SSR build: the $$moduleUrl export added to a Worker main module stops workerd from startingPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 Medio día Aptitud para principiantes 55/100
solidjs/solid-vite-plugin#420 ·
Los mantenedores suelen responder en 1 día
Todos los issues de solidjs/solid-vite-plugin
Issues similares
-
Unsampled pageload span is profiled when profileLifecycle is 'trace' (browser UI profiling)Posiblemente ocupada @Jxxunnn la tomó hoy. AbiertoBrowser Waiting for: Product Owner
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
getsentry/sentry-javascript#25497 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
e2e-failure ready-to-code
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
redhat-developer/rhdh-plugin-export-overlays#4438 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
resource: destroying a resource calls AbortController.abort() without a reason, creating an AbortError with a stack trace each timePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoarea: core
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
angular/angular#71422 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug status: needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
facebook/docusaurus#12739 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
Dificultad 1/5 1-3 horas Aptitud para principiantes 68/100
vercel/ai#23537 · 1 comentario ·
Los mantenedores suelen responder en 1 día