使用 Vuejs 和 webpack 的 PWA:如何缩小服务工作者代码?
PWA using Vuejs with webpack: how to minify service worker code?
我正在编写基于 Vuejs 的 PWA,并使用 webpack 作为捆绑器。我也在使用:
- 更简洁 minify/mangle 源代码
- Google Workbox 帮助 service worker
- 一些其他的 webpack 插件可以复制我的 service worker 需要的代码,并从
import/export
service worker 不支持的语句中清除它
现在我想缩小和破坏 service worker 使用的代码,令我惊讶的是,默认情况下并没有这样做。关于如何进行的任何线索?我找不到任何地方可以将 Terser 应用于 service worker 代码,而且我对 webpack 还是很陌生...
我最终编写了自己的 Webpack 插件。该插件将:
- 在任何其他插件之前激活
- 收集 Vue 环境变量 (
provcess.env.VUE_APP_*
)
- 将服务工作者所需的所有文件+环境变量合并在一起(而不是使用
ImportScripts
)。单独处理文件是行不通的,因此这一步。
- 运行 合并后的文件更简洁。
- 将结果复制到 public 文件夹,以便 Webpack 正常构建过程获取它。
清理完后我会把代码推送到这里....
我正在编写基于 Vuejs 的 PWA,并使用 webpack 作为捆绑器。我也在使用:
- 更简洁 minify/mangle 源代码
- Google Workbox 帮助 service worker
- 一些其他的 webpack 插件可以复制我的 service worker 需要的代码,并从
import/export
service worker 不支持的语句中清除它
现在我想缩小和破坏 service worker 使用的代码,令我惊讶的是,默认情况下并没有这样做。关于如何进行的任何线索?我找不到任何地方可以将 Terser 应用于 service worker 代码,而且我对 webpack 还是很陌生...
我最终编写了自己的 Webpack 插件。该插件将:
- 在任何其他插件之前激活
- 收集 Vue 环境变量 (
provcess.env.VUE_APP_*
) - 将服务工作者所需的所有文件+环境变量合并在一起(而不是使用
ImportScripts
)。单独处理文件是行不通的,因此这一步。 - 运行 合并后的文件更简洁。
- 将结果复制到 public 文件夹,以便 Webpack 正常构建过程获取它。
清理完后我会把代码推送到这里....