self.__WB_MANIFEST 的多个实例

Multiple instances of self.__WB_MANIFEST

与[https://forum.quasar-框架相关。org/topic/7808/injectmanifest-precaching-not-working][1]

我正在使用 quasar v2.0.0-beta.5 和 "workbox-webpack-plugin": "^5.1.4",遵循 pwa 教程。我现在正在使用 workboxPluginMode 处理服务工作者部分:'InjectManifest' in quasar.conf.js。我的定制服务-worker.js 只是:

import { precacheAndRoute } from 'workbox-precaching'
precacheAndRoute(self.__WB_MANIFEST)

加载 pwa 时出现以下错误

Uncaught not-an-array: The parameter 'entries' passed into 'workbox-precaching.PrecacheController.addToCacheList()' must be an array

我已经更新到最新版本的 Workbox:npm install --save-dev workbox-webpack-plugin@^6.1.0 看看它是否有所不同,现在我在 quasar dev 期间收到以下错误 - m pwa

Multiple instances of self.__WB_MANIFEST were found in your SW source. Include it only once. For more info, see GoogleChrome/workbox#2681

问题是,如果不解决这个问题,我就无法调试不同的缓存策略。

谢谢

Platform (please complete the following information): Quasar Version: v2.0.0-beta.5 @quasar/app Version: v3.0.0-beta.7 Quasar mode: [ ] SPA [ ] SSR [x ] PWA [ ] Electron [ ] Cordova [ ] Capacitor [ ] BEX Tested on: [ ] SPA [ ] SSR [x ] PWA [ ] Electron [ ] Cordova [ ] Capacitor [ ] BEX OS: windows 10 Node: v14.15.1 NPM: 6.14.8 Yarn: 1.22.10 Browsers: chrome (latest) iOS: Android: Electron:

在你的 service worker 文件中执行此操作。

if (process.env.NODE_ENV === 'production') {
  precacheAndRoute(self.__WB_MANIFEST);
}