@morlay/dsh-client-modules
v0.2.13
Published
Dev-form web layer for dsh: serves the page, the app entry and every client resource through an in-process vite dev server (middleware mode) — the node-side counterpart of upstream @deepseek-ai/dsh-client-modules, with the module table replaced by vite's
Maintainers
Readme
@morlay/dsh-client-modules
客户端的联邦预编译链:按请求触发、按包产出,把三方包与仓库内的包统一成带版本的地址
(/@client-modules/<pkg>@<version>/<export>),dev 与打包形态共用同一条链、同一套插件。
- dev:宿主内起 vite(middleware 模式),裸说明符指向联邦地址、正在改的包逐文件走(HMR);
- 打包:直接跑 rolldown 产出到 profile 的缓存目录,路由按产物清单(
.files.json)服务。
判据、分工与坑都在 设计:客户端资源的联邦式预编译
(URL 空间、出口名↔文件名、版本表、拆分配下限、两种形态的差异与 --prod 的验证面)。
被 @local/dshdev 经 @morlay/web-custom-profile 挂进 profile;上游内部
文件按需 vendored 到各包的 src/vendor/(同步工具见 @local/upstream-sync)。
浏览器侧:只补上游的 modules 服务面
本包的 client 半不做别的事——它只把上游 modules 服务补上(entries.releaseChange 恒 undefined、
dismissRelease() 与 invalidate() 空操作),见
src/client/index.ts 的文件头。
原因:上游 ui-settings-general(侧栏左下角那个设置入口的占位者)从 0.2.x 起 inject modules,
而上游 client-modules 行已被 web-custom-profile 停用(模块表 roster 与 /plugins 路由由本链取代),
浏览器侧于是没有这个服务——那一行永远等不到 inject 满足,设置入口整个消失。停用一行就要补上它对外
承诺的服务面,这是本包必须带着 client 半的原因。
