diff --git a/packages/@vue/cli-plugin-pwa/lib/HtmlPwaPlugin.js b/packages/@vue/cli-plugin-pwa/lib/HtmlPwaPlugin.js index 8db2759a5d..ae658ddc17 100644 --- a/packages/@vue/cli-plugin-pwa/lib/HtmlPwaPlugin.js +++ b/packages/@vue/cli-plugin-pwa/lib/HtmlPwaPlugin.js @@ -183,27 +183,31 @@ module.exports = class HtmlPwaPlugin { }) if (!isHrefAbsoluteUrl(this.options.manifestPath)) { - compiler.hooks.emit.tapAsync(ID, (data, cb) => { - const { - name, - themeColor, - manifestPath, - manifestOptions - } = this.options - const publicOptions = { - name, - short_name: name, - theme_color: themeColor - } - const outputManifest = JSON.stringify( - Object.assign(publicOptions, defaultManifest, manifestOptions) - ) - data.assets[manifestPath] = { - source: () => outputManifest, - size: () => outputManifest.length - } - cb(null, data) - }) + compiler.hooks.compilation.tap(ID, compilation => { + compilation.hooks.processAssets.tap( + {name: ID, stage: 'PROCESS_ASSETS_STAGE_ADDITIONS'}, + assets => { + const { + name, + themeColor, + manifestPath, + manifestOptions + } = this.options + const publicOptions = { + name, + short_name: name, + theme_color: themeColor + } + const outputManifest = JSON.stringify( + Object.assign(publicOptions, defaultManifest, manifestOptions) + ) + assets[manifestPath] = { + source: () => outputManifest, + size: () => outputManifest.length, + }; + }, + ); + }); } } }