@@ -283,13 +283,15 @@ export default defineNuxtModule<ModuleOptions>({
283
283
viteEntry = relative ( ctx . config . root || nuxt . options . srcDir , ( ctx as any ) . entry )
284
284
} )
285
285
nuxt . hook ( 'build:manifest' , ( manifest ) => {
286
- const unprocessedPreloads = new Set ( [ ...fontMap . values ( ) ] . flatMap ( v => [ ... v ] ) )
287
- function addPreloadLinks ( chunk : ResourceMeta , urls : Set < string > ) {
286
+ const unprocessedPreloads = new Set ( [ ...fontMap . keys ( ) ] )
287
+ function addPreloadLinks ( chunk : ResourceMeta , urls : Set < string > , id ?: string ) {
288
288
chunk . assets ||= [ ]
289
289
for ( const url of urls ) {
290
290
if ( ! chunk . assets . includes ( url ) ) {
291
291
chunk . assets . push ( url )
292
- unprocessedPreloads . delete ( url )
292
+ if ( id ) {
293
+ unprocessedPreloads . delete ( id )
294
+ }
293
295
}
294
296
if ( ! manifest [ url ] ) {
295
297
manifest [ url ] = {
@@ -311,7 +313,7 @@ export default defineNuxtModule<ModuleOptions>({
311
313
for ( const css of chunk . css ) {
312
314
const assetName = withoutLeadingSlash ( join ( nuxt . options . app . buildAssetsDir , css ) )
313
315
if ( fontMap . has ( assetName ) ) {
314
- addPreloadLinks ( chunk , fontMap . get ( assetName ) ! )
316
+ addPreloadLinks ( chunk , fontMap . get ( assetName ) ! , assetName )
315
317
}
316
318
}
317
319
}
@@ -321,11 +323,11 @@ export default defineNuxtModule<ModuleOptions>({
321
323
const chunk = manifest [ relative ( nuxt . options . srcDir , id ) ]
322
324
if ( ! chunk ) continue
323
325
324
- addPreloadLinks ( chunk , urls )
326
+ addPreloadLinks ( chunk , urls , id )
325
327
}
326
328
327
329
if ( entry ) {
328
- addPreloadLinks ( entry , unprocessedPreloads )
330
+ addPreloadLinks ( entry , new Set ( [ ... unprocessedPreloads ] . flatMap ( v => [ ... fontMap . get ( v ) || [ ] ] ) ) )
329
331
}
330
332
} )
331
333
0 commit comments