6 · 最小 patch 与访问

只做单页面开发时,patch 里只需三行:自己的项目 + 配置中心 + 数据存储。 本页给出这份最小 patch 的全文、--patch 的规则、 以及「URL 由插件注册、不由 patch 的 id 决定」这条最容易踩坑的访问规则。

最小集:三行就够#

为什么是三行

自己的项目提供你要开发的页面;配置中心是业务插件读配置的硬依赖(缺它不加载); 数据存储负责按应用名建连接池。账号 / 权限 / 认证(第 5 章)只在需要登录态时再加。

patch 覆盖层的规则#

  1. 只 insert,不改 profile:patch 是叠加层,往现有装配里追加插件,不替换、不改动 profile 本身。
  2. 不改 profile:原有插件顺序与配置保持原样,你的行只做追加。
  3. 行内 name 相对本 patch 文件解析:写相对路径即可,把 patch 放在工作区根、插件与它同级最省事。
  4. --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-open
bashLinux / 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/

注册路径以插件源码为准;同一个插件注册多个路径时(如业务前台 + 配置后台),逐个访问。

最小验证#

  1. 看宿主日志:启动后日志会打印已装配的插件,确认出现你 patch 里的 id(如 kth-bus-yyjz-agents)且无报错。
  2. 访问页面:浏览器打开 http://localhost:3080/<注册路径>,页面正常渲染而非 404 / 白屏。
  3. 查运行状态:请求 http://localhost:3080/api/status,确认宿主与插件状态正常。
powershellWindows / PowerShell
curl http://localhost:3080/api/status
bashLinux / macOS
curl http://localhost:3080/api/status
排错顺序

页面 404 先查是否已 pnpm run build 并重启宿主;若插件根本没出现在日志里, 多半是 patch 里缺了配置中心(业务插件的硬依赖),回去看 5 · 按需拉取插件。