@@ -111,34 +111,42 @@ export function setupPublicAssetStrategy(options: ModuleOptions['assets'] = {})
111
111
} satisfies NitroConfig )
112
112
113
113
// TODO: refactor to use nitro storage when it can be cached between builds
114
- nuxt . hook ( 'nitro:init' , async ( nitro ) => {
114
+ nuxt . hook ( 'nitro:init' , ( nitro ) => {
115
115
if ( nuxt . options . dev ) {
116
116
return
117
117
}
118
- nuxt . hook ( 'build:done' , ( ) => {
119
- nitro . hooks . hook ( 'rollup:before' , async ( ) => {
120
- await fsp . rm ( cacheDir , { recursive : true , force : true } )
121
- await fsp . mkdir ( cacheDir , { recursive : true } )
122
- let banner = false
123
- for ( const [ filename , url ] of renderedFontURLs ) {
124
- const key = 'data:fonts:' + filename
125
- // Use storage to cache the font data between builds
126
- let res = await storage . getItemRaw ( key )
127
- if ( ! res ) {
128
- if ( ! banner ) {
129
- banner = true
130
- logger . info ( 'Downloading fonts...' )
131
- }
132
- logger . log ( chalk . gray ( ' ├─ ' + url ) )
133
- res = await fetch ( url ) . then ( r => r . arrayBuffer ( ) ) . then ( r => Buffer . from ( r ) )
134
- await storage . setItemRaw ( key , res )
118
+ let built = false
119
+ nuxt . hook ( 'vite:compiled' , ( ) => {
120
+ built = true
121
+ } )
122
+ nuxt . hook ( 'webpack:compiled' , ( ) => {
123
+ built = true
124
+ } )
125
+ nitro . hooks . hook ( 'rollup:before' , async ( ) => {
126
+ if ( ! built ) {
127
+ return
128
+ }
129
+ await fsp . rm ( cacheDir , { recursive : true , force : true } )
130
+ await fsp . mkdir ( cacheDir , { recursive : true } )
131
+ let banner = false
132
+ for ( const [ filename , url ] of renderedFontURLs ) {
133
+ const key = 'data:fonts:' + filename
134
+ // Use storage to cache the font data between builds
135
+ let res = await storage . ge
D73F
tItemRaw ( key )
136
+ if ( ! res ) {
137
+ if ( ! banner ) {
138
+ banner = true
139
+ logger . info ( 'Downloading fonts...' )
135
140
}
136
- await fsp . writeFile ( join ( cacheDir , filename ) , res )
137
- }
138
- if ( banner ) {
139
- logger . success ( 'Fonts downloaded and cached.' )
141
+ logger . log ( chalk . gray ( ' ├─ ' + url ) )
142
+ res = await fetch ( url ) . then ( r => r . arrayBuffer ( ) ) . then ( r => Buffer . from ( r ) )
143
+ await storage . setItemRaw ( key , res )
140
144
}
141
- } )
145
+ await fsp . writeFile ( join ( cacheDir , filename ) , res )
146
+ }
147
+ if ( banner ) {
148
+ logger . success ( 'Fonts downloaded and cached.' )
149
+ }
142
150
} )
143
151
} )
144
152
0 commit comments