6 · 最小 patch 与访问
只做单页面开发时,patch 里只需三行:自己的项目 + 配置中心 + 数据存储。
本页给出这份最小 patch 的全文、--patch 的规则、
以及「URL 由插件注册、不由 patch 的 id 决定」这条最容易踩坑的访问规则。
最小集:三行就够#
为什么是三行
自己的项目提供你要开发的页面;配置中心是业务插件读配置的硬依赖(缺它不加载); 数据存储负责按应用名建连接池。账号 / 权限 / 认证(第 5 章)只在需要登录态时再加。
patch 覆盖层的规则#
- 只
insert,不改 profile:patch 是叠加层,往现有装配里追加插件,不替换、不改动 profile 本身。 - 不改 profile:原有插件顺序与配置保持原样,你的行只做追加。
- 行内
name相对本 patch 文件解析:写相对路径即可,把 patch 放在工作区根、插件与它同级最省事。 --patch必须写在--no-open之前:--patch是启动器参数,--no-open是 app 参数,顺序反了会报unknown option '--patch'。
一份最小 patch 全文#
yamlminimal.patch.yml(单页面开发最小集)
# 放在工作区根(与插件库同级);行内 name 相对本文件解析。
- insert:
# 1) 自己的项目:把模板改造成你的插件后的构建产物 lib/index.js
- id: my-first-plugin
name: ./my-first-plugin/lib/index.js
# 2) 配置中心(台账):业务插件读配置的硬依赖,缺它不加载
- id: kth-infra-configmanagement
name: ./infra-configmanagement/content/lib/index.js
config: # 占位符:真实值放本地,不入库
host: <DB_HOST>
port: 5432
database: <DB_NAME>
user: <DB_USER>
password: <DB_PASSWORD>
secretKey: <SM4_KEY>
# 3) 数据存储:连接池注册表,按应用名建池(无 config 段)
- id: infra-database-postgresql
name: ./infra-database-postgresql/content/lib/index.js凭据不入库
上面的 <DB_HOST> 等一律用占位符。真实口令与 SM4 密钥只放在你本地的 patch 里,
或从平台管理员处获取;不要提交到 Git。
启动命令#
powershellWindows / PowerShell
$env:DSH_HOME = "$HOME\kth\.dsh-home"
cd $HOME\kth\kth
pnpm dsh web --patch "$HOME\kth\minimal.patch.yml" --no-openbashLinux / macOS
export DSH_HOME="$HOME/kth/.dsh-home"
cd ~/kth/kth
pnpm dsh web --patch ~/kth/minimal.patch.yml --no-open改了 src 要重建 + 重启
宿主加载的是构建产物 lib/index.js,不是源码。改完 src/ 后,
在插件目录重跑 pnpm run build,然后重启宿主(Ctrl+C 停掉再启)才会生效。
访问路径规则(重点)#
id 不是 URL
patch 行里的 id(如 kth-bus-yyjz-agents)只是装配标识,
决定「装配哪个插件」;页面 URL 由插件自己注册(在 src/index.ts 里,如注册 /bus-yyjz-agents/)。
所以访问的是 http://localhost:3080/<注册路径>,不要拿 id 去拼地址。
| patch 行 id(装配标识) | 插件注册的路径 | 访问地址 |
|---|---|---|
| kth-bus-yyjz-agents | /bus-yyjz-agents/ | http://localhost:3080/bus-yyjz-agents/ |
| kth-bus-yyjz-agents(后台) | /bus-yyjz-agents/admin/ | http://localhost:3080/bus-yyjz-agents/admin/ |
| kth-bus-image-detection | /bus-image-detection/ | http://localhost:3080/bus-image-detection/ |
注册路径以插件源码为准;同一个插件注册多个路径时(如业务前台 + 配置后台),逐个访问。
最小验证#
- 看宿主日志:启动后日志会打印已装配的插件,确认出现你 patch 里的
id(如kth-bus-yyjz-agents)且无报错。 - 访问页面:浏览器打开
http://localhost:3080/<注册路径>,页面正常渲染而非 404 / 白屏。 - 查运行状态:请求
http://localhost:3080/api/status,确认宿主与插件状态正常。
powershellWindows / PowerShell
curl http://localhost:3080/api/statusbashLinux / macOS
curl http://localhost:3080/api/status排错顺序
页面 404 先查是否已 pnpm run build 并重启宿主;若插件根本没出现在日志里,
多半是 patch 里缺了配置中心(业务插件的硬依赖),回去看 5 · 按需拉取插件。