Dev manifest loses lazy CSS when imported before HTTP startup
Los mantenedores suelen responder en 1 día
@everton-dgn ya está trabajando en esto.
Desde el 14/10/2026.
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
- Área
- build-system
Línea de trabajo
Start with devManifestBridgeUrl() and the code that generates virtual:solid-manifest, and find where it falls back to the JS-only manifest when the bridge URL is null. Use the reproduction in the issue: create the server with Vite's createServer(), delay server.listen() until the manifest is requested, then fetch with Accept: text/html and check whether the lazy CSS is included. Done means the manifest resolves the bridge URL lazily, so the lazy CSS appears even when the manifest loads before listening, and it handles a port change or a server closed before listening.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
With Nitro's Vite integration, the server runner can import virtual:solid-manifest before the HTTP server starts listening. devManifestBridgeUrl() returns null at that point, and the generated manifest keeps the JS-only fallback for the rest of the session.
The page renders successfully, but CSS imported by a lazy component is missing from the SSR response. The browser adds it during hydration, causing a visible layout change.
Reproduced with:
@solidjs/[email protected][email protected]and@solidjs/[email protected][email protected][email protected], Node 24, macOS
The relevant manifest code is unchanged in 3.0.0-next.50.
A small app is enough:
// src/App.tsx
import { lazy } from 'solid-js';
const Page = lazy(() => import('./Page.tsx'), undefined, 'src/Page.tsx');
export default function App() {
return <Page />;
}
// src/Page.tsx
import './page.css';
export default function Page() {
return <div class="bridge_probe">Nitro manifest probe</div>;
}
/* src/page.css */
.bridge_probe { font-size: 18px; }
Configure solid({ ssr: true, start: { devtools: false } }) and nitro({ serverEntry: false }).
To reproduce the startup ordering consistently, create the server through Vite's createServer() API and delay server.listen() until Nitro has requested virtual:solid-manifest. A preceding plugin's load hook can observe that request. Then start listening and fetch the page with Accept: text/html.
Actual result: HTTP 200, page content present, lazy CSS absent. Delaying the manifest load until the HTTP server is listening makes the same request include the CSS.
The bridge URL should remain usable when an external runner loads the manifest before the first request. The fix also needs to handle Vite choosing another port and closing the server before it starts listening.
- Lenguaje dominante
- TypeScript
- Estrellas
- 522
- Forks
- 73
- Merge medio
- 1 d 5 h
- PR fusionados (30 d)
- 34
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 54 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 Medio día Aptitud para principiantes 55/100
solidjs/solid-vite-plugin#420 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
solidjs/solid-vite-plugin#419 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 1-2 días Aptitud para principiantes 30/100
solidjs/solid-vite-plugin#418 ·
Los mantenedores suelen responder en 1 día
-
Dev manifest bridge keeps stale CSS after an editPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 34/100
solidjs/solid-vite-plugin#415 ·
Los mantenedores suelen responder en 1 día
Todos los issues de solidjs/solid-vite-plugin
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/rocketmq-dashboard#6872 ·
Los mantenedores suelen responder en 3 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
fab-geocommuns/RNB-site#539 ·
Los mantenedores suelen responder en 2 días
-
Guest multiview tile label leaks raw virtual-source-id "Whip" instead of the guest name / slot labelAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Eyevinn/open-live-studio#211 ·
Los mantenedores suelen responder en 1 día
-
documentation good first issue
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
sujithputta02/Esapay#13 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
ehmpathy/rhachet-roles-bhuild#468 ·
Los mantenedores suelen responder en 1 día