🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

haoliangwu/dsh-pwa

DeepSeek 客户端兼容 / 相关生态spec-screened扫描:中风险在 GitHub 查看 ↗
未验证

让正在运行的 dsh web 实例可作为 PWA 安装——包含 manifest + service worker +…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/25 · 已提供中文文档

关于如何将dsh改为PWA的实用示例。

综合分
26.8
GitHub 分
26.8
用户评分
—
★ Stars
0
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/haoliangwu/dsh-pwa.git
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
是什么
生态应用(桌面端 / Web 外壳,不以 dsh plugin add 安装)
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
更新放缓:最近一次提交在 32 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

数据截至 2026/9/25(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-pwa

让正在运行的 dsh web 实例可作为 PWA 安装——包含 manifest + service worker + 图标,并支持 basePath 以适配反向代理部署。

一个用于 DeepSeek Harness 的纯宿主端插件。Web 前端在其 dist 中已经附带了 manifest 和 favicon,但没有 service worker 或 SW 注册脚本——因此 Chrome 的可安装性检查会失败。本插件填补了这一空缺,并允许应用挂载在反向代理的子路径下。

- 一行安装,无需构建步骤。 lib/ 和 assets/ 已提交——git 安装即可直接使用。
- 恰好填补一个空缺。 原版 dist 已经附带了 manifest 和 favicon;本插件添加了缺失的 service worker + 注册脚本,从而使 Chrome 的可安装性检查通过。
- 反向代理就绪。 每条路由和 URL 都以 basePath 为根,并带有规范化处理(''/'/' → /,/dsh → /dsh/,……),且拒绝包含 ?/# 的值。
- 五条路由,零每请求读取。 manifest.webmanifest、sw.js、icon-192.png/icon-512.png、favicon.svg——静态资源在 apply 时缓存于处理函数闭包中。

安装

dsh plugin --profile web add github:haoliangwu/dsh-pwa

已构建的 lib/ 和 assets/ 已提交,因此 git 安装只需一行——无需 prepare 脚本,无需构建步骤。安装后重启 dsh --profile web(bundle 层堆叠在启动时组合)。

配置

basePath 默认为 /(安装在源站根路径)。对于挂载在 /dsh/ 的反向代理部署,请通过 insert 形式将插件添加到你的 profile 的 cordis.patch.yml(~/.dsh/profiles/web/cordis.patch.yml)中(config-overlay 形式只能调整已在 dsh.profile.bundles 中列出的插件):

- insert:
- id: dsh-pwa
name: dsh-pwa
config:
basePath: /dsh/

在 dsh plugin add 安装后,裸的 - id: dsh-pwa 行已经就位;只需追加 config: 块来调整 basePath。

规范化会自动应用:''/'/' → '/','/dsh' → '/dsh/','dsh/' → '/dsh/','/dsh/' 保持不变。包含 ? 或 # 的值会被拒绝。

工作原理

在 apply(ctx, config) 时,插件在 ${basePath}pwa/* 下注册五条 WebServer 路由:

- manifest.webmanifest → Web manifest,在 JS 中构建,URL 以 basePath 为根,以 application/manifest+json 提供
- sw.js → assets/sw.js,以 text/javascript 提供
- icon-192.png / icon-512.png → assets/icon-192.png / assets/icon-512.png,以 image/png 提供
- favicon.svg → assets/favicon.svg,以 image/svg+xml 提供

每个静态资源在 apply 时读取一次并缓存于处理函数闭包中(无每请求磁盘读取),返回的 disposer 通过 ctx.effect 释放,以便 HMR/卸载时清理。
它还调用 ctx.webServer.tapIndex(transform) 来重写 index.html:

- 将  重新指向 ${basePath}pwa/manifest.webmanifest
- 将  重新指向 ${basePath}pwa/favicon.svg
- 在  之前注入一个 serviceWorker.register('${basePath}pwa/sw.js', { scope: '${basePath}' }) 脚本

验证

1. 启动 dsh --profile web。
2. 打开 Chrome DevTools → Application 面板 → Manifest。确认名称、图标(192/512/svg)以及以 basePath 为根的 start_url/scope。
3. Application → Service Workers 应列出一个来自 ${basePath}pwa/sw.js 的活动 worker。
4. 打开 Lighthouse(或查看 Application → 可安装性横幅)——该站点现在应通过安装检查清单,并在首次访问时显示 beforeinstallprompt。

从源码构建

pnpm install
pnpm gen-icons   # regenerates assets/icon-192.png + assets/icon-512.png from assets/favicon.svg
pnpm build       # emits lib/index.js, lib/invariant.js
pnpm test        # config normalization + manifest/tapIndex unit tests

lib/ 和 assets/ 已提交,因此 git 安装无需构建步骤即可工作。更改源码后,运行 pnpm build(当图标源更改时还需运行 pnpm gen-icons)并提交这两个目录树。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(haoliangwu)的其他插件

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群