vue 插件 pwa sw.js 未找到

vue plugin pwa sw.js not found

我有 1 个应用程序使用 vue pwa 插件,效果很好。

该应用的 vuejs 配置如下所示:

const WebpackNotifierPlugin = require('webpack-notifier')

module.exports = {
  lintOnSave: false,
  css: {
    loaderOptions: {
      sass: {
        implementation: require('sass')
      }
    }
  },
  transpileDependencies: [
    'vuex-module-decorators',
    'vuex-persist'
  ],
  pwa: {
    name: 'MyApp',
    themeColor: '#000000',
    msTileColor: '#000000',
    appleMobileWebAppCapable: 'yes',
    appleMobileWebAppStatusBarStyle: 'black',

    // configure the workbox plugin
    workboxPluginMode: 'InjectManifest',
    workboxOptions: {
      // swSrc is required in InjectManifest mode.
      swSrc: 'dev/sw.js',
      // ...other Workbox options...
    }
  },
  configureWebpack: {
    devServer:{
      historyApiFallback: true,
    },
    plugins: [
      new WebpackNotifierPlugin(),
    ],
    optimization: {
      runtimeChunk: 'single',
      splitChunks: {
        chunks: 'all',
        maxInitialRequests: 3,
        minSize: 0,
        cacheGroups: {
          vendor: {
            test: /[\/]node_modules[\/]/,
            name(module) {
              const packageName = module.context.match(/[\/]node_modules[\/](.*?)([\/]|$)/)[1];
              return `npm.${packageName.replace('@', '')}`;
            },
          },
        },
      },
    },
  },
}

我有另一个应用程序,完全一样,vue2、beufy 等等。我通过 vue pwa 插件安装了相同的东西,配置看起来完全一样,但是当我 运行 构建时它说找不到 sw.js 文件:

Error: ENOENT: no such file or directory, open 'dev/sw.js'

我创建了一个超级基本的 vue 应用程序,它在这里做同样的事情:https://github.com/johndcarmichael/vue-pwa-sw-not-found

有没有其他人遇到过这个问题,你是如何解决的?

您的项目中没有 dev/sw.js,正如您在 swSrc 中设置的那样。 InjectManifest 表示获取此 sw.js 源文件并将预缓存清单写入其中,生成最终的 service-worker.js 文件。