2

我在文件名中放置了一个console.log,compression-webpack-plugin在构建过程的最开始,将打印一个日志,实际上,在将sw.js文件的内容复制到一个新创建的名为的文件之后service-worker.js,但目前没有关于self.__WB_MANIFEST哪个文件的信息必须通过workbox来宣讲precacheAndRoute。在构建过程结束时,当信息到达时,一个数组(宣扬的时间及其修订版)将被替换self.__WB_MANIFEST并注入service-worker.js,但不会发生压缩日志。因此 . 的压缩文件和原始文件将不兼容service-wroker.js

webpack 插件

{
  plugins: [
    // ...
    new WorkboxPlugin.InjectManifest({
      swSrc: './src/setup/sw.js',
      swDest: 'service-worker.js',
      exclude: [/\.(gz|br)$/],
      maximumFileSizeToCacheInBytes: 10 * 1024 * 1024,
    }),
    // ...
    new CompressionPlugin({
      filename(pathData) {
        console.log(pathData)
        return '[path][base].gz'
      },
      algorithm: 'gzip',
      minRatio: 0.8,
      test: /\.(js|css|html|svg|wasm)$/,
   })
  ]
}

包.json

{
  "webpack": "^5.4.0",
  "compression-webpack-plugin": "^6.0.5",
  "workbox-webpack-plugin": "^6.0.0-alpha.3",
}
4

1 回答 1

3

本评论所述,此问题已修复,您应该升级compression-webpack-plugin到 v6.1.1。

于 2020-11-17T13:15:54.217 回答