关于 swpp

Service Worker Plus Plus

什么是 swpp

  swpp 是一个用于为网站快速生成一个高度可用的 Service Worker (opens in a new tab) 的工具,旨在提高网站的可靠性、优化二次访问性能、提供离线浏览功能……

  常用 SW 构建工具的对比:

swpp@3swpp@2hexo-offline
本地缓存✔️✔️✔️
缓存增量更新✔️✔️
缓存过期时间✔️✔️
缓存大小限制✔️
预缓存✔️
Request 篡改✔️✔️
URL 竞速✔️✔️
备用 URL✔️✔️
204 阻塞响应✔️✔️
逃生门✔️✔️
请求合并✔️
高度自由✔️✔️
更新活跃停止维护超过两年没有更新

swpp v2 与 v3 的区别

  swpp v3 对 swpp 的所有代码进行了完全的重构,现在代码逻辑更加的清晰。除了后台代码的差异,v3 还有以下一系列的改进:

  • 完全定制化
    现在您对 swpp 生成的 sw 拥有完全的控制权。在 v2 中,如果需要修改插件生成的 sw 的逻辑,您需要自行编写整个 sw 文件。
    v3 中将 sw 文件的各个部分拆分到了环境变量中,这使得您可以通过配置文件覆盖 sw 文件中的任意一个部分,或者追加任意内容。

  • 现代化配置
    现在您可以使用 ts 语言编写配置文件,同时还可以选择使用 ESM。在 v2 中您必须使用 CommonJS
    同时使用内置的一系列 define 函数可以让您对配置的颗粒度进行更加完美的掌控。

  • 完善的类型
    现在 swpp 提供了更加优雅的数据类型,以优化编写配置项、二次开发时的体验。

约定

  在正式开始前您需要知道下面的事:

  1. 本文档统一使用 npm 指令,您可根据喜好替换为自己使用的命令。
  2. 在使用 swpp 之前您应当具备 ts/js 的部分知识,否则您可能会遇到一些麻烦。
  3. swpp 分为前后端实现,如不特别声明,均指后端实现。本文档是后端实现的文档。
  4. 文档中的示例代码中出现的 // noinspection xxx 注释用于在编写文档时消除 IDE 警告,不需要 CV 走。

版本号

  目前 swpp v3 还在测试阶段,版本号全部采用 3.0.0-alpha.<a><b><c> 的格式:

  • 3.0.0 - 大版本号
  • alpha - 测试版本
  • a - 一级子版本号,变动时表明 API 或配置文件等内容发生了不向前兼容的变动
  • b - 二级子版本号,变动时表明添加了新的功能
  • c - 三级子版本号,变动时表明进行了漏洞修复

  当 a b c 的某一位达到两位数时,会在其中添加 x 表示分割。

历史文档

  本文档不保存历史版本,因为本人永远推荐用户使用最新版的 swpp,旧版的 swpp 很可能是不安全的。

QQ 群

  注意:swpp 有且仅有下面的群是官方的:

545028909 群