8000 fix: use earlier hooks to mark build done · nuxt/fonts@0311651 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit 0311651

Browse files
committed
fix: use earlier hooks to mark build done
resolves #284
1 parent e82a6f1 commit 0311651

File tree

1 file changed

+31
-23
lines changed

1 file changed

+31
-23
lines changed

src/assets.ts

+31-23
Original file line numberDiff line numberDiff line change
@@ -111,34 +111,42 @@ export function setupPublicAssetStrategy(options: ModuleOptions['assets'] = {})
111111
} satisfies NitroConfig)
112112

113113
// 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) => {
115115
if (nuxt.options.dev) {
116116
return
117117
}
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...')
135140
}
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)
140144
}
141-
})
145+
await fsp.writeFile(join(cacheDir, filename), res)
146+
}
147+
if (banner) {
148+
logger.success('Fonts downloaded and cached.')
149+
}
142150
})
143151
})
144152

0 commit comments

Comments
 (0)
0