@@ -3,6 +3,7 @@ const { fork } = require('child_process')
33const fs = require ( 'fs-extra' )
44const hasha = require ( 'hasha' )
55const { joinUrl, getRouteParams, sizeName } = require ( '../utils' )
6+ const { version } = require ( '../../package.json' )
67
78module . exports = function ( pwa ) {
89 this . nuxt . hook ( 'build:before' , ( ) => run . call ( this , pwa , true ) )
@@ -198,25 +199,30 @@ function emitAssets (options) {
198199}
199200
200201async 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