DeepSeek Harness PWA 插件:添加离线与安装能力

DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在构建 Web 界面时,如果希望应用具备离线访问能力,并能被安装到桌面或移动端,需要额外的 Service Worker 和 Manifest 配置。下面介绍的 dsh-pwa-plugin 正是为了解决这一问题。

插件简介

这是一个为 DeepSeek Harness 提供的 PWA 插件。它通过 Service Worker 实现智能缓存策略,允许静态资源离线访问,并提供标准的 PWA Manifest 以支持将应用安装为独立应用。

插件由 RaulLazaro 维护,采用 MIT 许可证。

安装与启用

安装过程包含三个步骤,需要在 DSH 的 Web 配置文件中进行修改。

  1. 添加依赖

在 DSH Web Profile 的 package.json 中添加依赖项:

{
  "dependencies": {
    "dsh-pwa-plugin": "file:~/workspace/dsh-pwa-plugin"
  }
}
  1. 注册插件

在 Profile 的 cordis.patch.yml 中插入插件配置:

- insert:
    - id: dsh-pwa
      name: 'dsh-pwa-plugin'
  1. 重启 DSH

执行以下命令重启服务:

dsh web

核心功能

插件托管并注入以下文件:

  • /sw.js:Service Worker 脚本
  • /manifest.webmanifest:PWA 配置清单
  • 图标文件

插件会自动检测并静默激活新版本,无需手动干预。

缓存策略

插件为不同类型的资源定义了差异化的缓存策略:

资源类型 策略 说明
HTML Network-first 始终尝试获取最新版本
JS/CSS/Fonts/Images Cache-first 可用时优先从缓存提供
API calls Not cached 始终走网络请求

工作原理

  1. 插件作为 Host 插件运行,提供静态资源文件。
  2. 插件将 Service Worker 注册脚本注入到 HTML 中。
  3. Service Worker 启动后,缓存静态资源(包括图标)供离线使用。
  4. Manifest 文件允许浏览器将应用安装为 PWA。
  5. 利用 DSH 内置的 /favicon.svg 作为图标源,不进行覆盖。
  6. 更新检测到后,会自动触发页面重新加载以应用新版本。

注意事项

  • HTTPS 要求:Service Worker 必须在 HTTPS 环境下运行(localhost 除外)。
  • API 限制:Service Worker 无法缓存 API 调用,API 请求始终走网络。
  • 版本依赖:需要 @deepseek-ai/cordis 版本在 ^4.0.1 以上。
  • 更新机制:检测到新版本后,需要页面重新加载才能生效。

资源链接

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜