vue-cli-service 构建:新 workbox-webpack-plugin 选项的验证错误

vue-cli-service build: validationError for new workbox-webpack-plugin options

具有以下vue.config.js:

module.exports = {
  pwa: { 
    name: 'My App',
    ...
    workboxPluginMode: 'InjectManifest',
    workboxOptions: {
      swSrc: 'src/sw.js', //and I use "sw.js" in my registerServiceWorker.js file
      skipWaiting: true,
      clientsClaim: true,
    }
  }
}

构建期间的验证错误是 'skipWaiting' 和 'clientsClaim' 不是受支持的参数。为什么? swSrc 来自列出的相同选项列表 here 并且构建不会抱怨该选项。当我删除这两个选项时,构建工作正常。

所以我想我的问题是:

skipWaitingclientsClaim什么的"not a supported parameter"? webpack的? PWA插件的? workbox-webpack 插件的?我在哪里可以找到正确的选项集?谢谢。

更新:我没有设置 NODE-ENV 的 .env 文件。但是 npm run build 我猜构建生产资产才有效 只有当我删除 2 个选项 时。 dev (npm run serve) 中删除的选项不会产生任何服务工作者文件。

您正在 InjectManifest 模式下使用 workbox 插件,但为 GenerateSW 传递参数。

InjectManifest 模式期望注入一个现有的 service-worker 文件,它的路径在 swSrc 中定义,而 GenerateSW 将创建 service-worker 文件,因此接受不同的集合选项(例如 swDest,等等)

每种模式的所有选项都可以在您在相应部分中发布的 workbox-webpack-plugin 的同一文档页面上找到。