Skip to content

Commit 09cbd85

Browse files
Brooooooklynclaude
andcommitted
fix(pages): collect CSS from dynamicImports to prevent FOUC
collectPagesManifestFiles only traversed chunk.imports, missing CSS from dynamically imported modules like layouts. Since layouts are listed under dynamicImports in the Vite manifest, their CSS was never injected as <link rel="stylesheet"> in <head>, causing a flash of unstyled content on every page load. Now traverses both imports and dynamicImports so layout CSS is included in the initial HTML response. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 1686bba commit 09cbd85

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

‎packages/void/src/router/compile.ts‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -709,8 +709,13 @@ function compilePageRoutes(lines: string[], scan: ScanResult, pages: PagesCompil
709709
lines.push(` if (seen.has(currentId)) continue;`);
710710
lines.push(` seen.add(currentId);`);
711711
lines.push(` const chunk = manifest[currentId];`);
712-
lines.push(` if (!chunk || !Array.isArray(chunk.imports)) continue;`);
713-
lines.push(` for (const importedId of chunk.imports) toVisit.push(importedId);`);
712+
lines.push(` if (!chunk) continue;`);
713+
lines.push(` if (Array.isArray(chunk.imports)) {`);
714+
lines.push(` for (const importedId of chunk.imports) toVisit.push(importedId);`);
715+
lines.push(` }`);
716+
lines.push(` if (Array.isArray(chunk.dynamicImports)) {`);
717+
lines.push(` for (const importedId of chunk.dynamicImports) toVisit.push(importedId);`);
718+
lines.push(` }`);
714719
lines.push(` }`);
715720
lines.push(` return Array.from(seen);`);
716721
lines.push(`}`);

0 commit comments

Comments
 (0)