@@ -225,7 +225,7 @@ function solidStartVitePlugin(options?: SolidStartOptions): Array<PluginOption>
225225 const manifest : StartServerManifest = {
226226 clientEntryId : normalizePath ( handlers . client ) ,
227227 clientViteManifest : { } ,
228- routes : { }
228+ clientAssetManifest : { }
229229 } ;
230230
231231 return `export const manifest = ${ JSON . stringify ( manifest ) } ` ;
@@ -236,20 +236,41 @@ function solidStartVitePlugin(options?: SolidStartOptions): Array<PluginOption>
236236 ) ;
237237 if ( ! entry ) throw new Error ( "No client entry found" ) ;
238238
239- const clientManifest : Record < string , { file : string } > = JSON . parse (
239+ const clientManifest : Record < string , Record < string , any > > = JSON . parse (
240240 ( globalThis . START_CLIENT_BUNDLE [ ".vite/manifest.json" ] as any ) . source
241241 ) ;
242242
243- const routes = Object . entries ( clientManifest ) . reduce ( ( acc , [ id , entry ] ) => {
244- acc [ id ] = { output : `/${ CLIENT_BASE_PATH } /${ entry . file } ` } ;
243+ const clientAssetManifest = Object . entries ( clientManifest ) . reduce ( ( acc , [ id , entry ] ) => {
244+ const assets = [
245+ ...( entry . assets ?. filter ( Boolean ) || [ ] ) ,
246+ ...( entry . css ?. filter ( Boolean ) || [ ] )
247+ ]
248+ . filter (
249+ ( asset ) =>
250+ asset . endsWith ( ".css" ) ||
251+ asset . endsWith ( ".js" ) ||
252+ asset . endsWith ( ".mjs" ) ,
253+ )
254+ . map ( ( asset ) => ( {
255+ tag : "link" ,
256+ attrs : {
257+ href : join ( "/" , CLIENT_BASE_PATH , asset ) ,
258+ key : join ( "/" , CLIENT_BASE_PATH , asset ) ,
259+ ...( asset . endsWith ( ".css" )
260+ ? { rel : "stylesheet" , fetchPriority : "high" }
261+ : { rel : "modulepreload" } ) ,
262+ } ,
263+ } satisfies ManifestAsset ) ) ;
264+ ;
265+
266+ acc [ id ] = { output : `/${ CLIENT_BASE_PATH } /${ entry . file } ` , assets } ;
245267 return acc ;
246- } , { } as Record < string , { output : string } > ) ;
268+ } , { } as ClientManifest ) ;
247269
248270 const manifest : StartServerManifest = {
249271 clientEntryId : normalizePath ( handlers . client ) ,
250- // clientEntry: `/${CLIENT_BASE_PATH}/${entry.fileName}`,
251272 clientViteManifest : clientManifest ,
252- routes
273+ clientAssetManifest
253274 } ;
254275
255276 return `export const manifest = ${ JSON . stringify ( manifest ) } ;` ;
0 commit comments