Skip to content

Commit 6661a09

Browse files
committed
feat: use integraty file to invalidate icon cache
1 parent f4eeda7 commit 6661a09

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

lib/icon/module.js

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const { fork } = require('child_process')
33
const fs = require('fs-extra')
44
const hasha = require('hasha')
55
const { joinUrl, getRouteParams, sizeName } = require('../utils')
6+
const { version } = require('../../package.json')
67

78
module.exports = function (pwa) {
89
this.nuxt.hook('build:before', () => run.call(this, pwa, true))
@@ -198,25 +199,30 @@ function emitAssets (options) {
198199
}
199200

200201
async function resizeIcons (options) {
201-
if (await fs.exists(options._cacheDir)) {
202+
const resizeOpts = JSON.stringify({
203+
version,
204+
input: options.iconSrc,
205+
distDir: options._cacheDir,
206+
sizes: [
207+
...options.sizes,
208+
...options.iosSizes
209+
]
210+
})
211+
212+
const integrityFile = path.join(options._cacheDir, '.' + hasha(resizeOpts))
213+
214+
if (await fs.exists(options.integrityFile)) {
202215
return
203216
}
204217

205218
await fs.mkdirp(options._cacheDir)
206219

207220
await new Promise((resolve, reject) => {
208-
const child = fork(require.resolve('./resize'), [
209-
JSON.stringify({
210-
input: options.iconSrc,
211-
distDir: options._cacheDir,
212-
sizes: [
213-
...options.sizes,
214-
...options.iosSizes
215-
]
216-
})
217-
])
221+
const child = fork(require.resolve('./resize'), [resizeOpts])
218222
child.on('exit', (code) => {
219223
return code ? reject(code) : resolve()
220224
})
221225
})
226+
227+
await fs.writeFile(integrityFile, '')
222228
}

0 commit comments

Comments
 (0)