使用 Vuejs 和 webpack 的 PWA:如何缩小服务工作者代码?

PWA using Vuejs with webpack: how to minify service worker code?

我正在编写基于 Vuejs 的 PWA,并使用 webpack 作为捆绑器。我也在使用:

现在我想缩小和破坏 service worker 使用的代码,令我惊讶的是,默认情况下并没有这样做。关于如何进行的任何线索?我找不到任何地方可以将 Terser 应用于 service worker 代码,而且我对 webpack 还是很陌生...

我最终编写了自己的 Webpack 插件。该插件将:

  1. 在任何其他插件之前激活
  2. 收集 Vue 环境变量 (provcess.env.VUE_APP_*)
  3. 将服务工作者所需的所有文件+环境变量合并在一起(而不是使用ImportScripts)。单独处理文件是行不通的,因此这一步。
  4. 运行 合并后的文件更简洁。
  5. 将结果复制到 public 文件夹,以便 Webpack 正常构建过程获取它。

清理完后我会把代码推送到这里....