跳到主要内容

代码生成与菜单

这一节两件事: **根据数据集或已保存 SQL 生成 TypeScript 调用片段 ,以及 把本地页面和线上菜单、CDN 资源对齐 **。都不替代你写业务逻辑,但能减少查文档和手写样板的时间。

按数据集操作生成 SDK 风格代码:codegen sdk

在已经 api pull、且知道要调哪个操作的前提下:

rabetbase codegen sdk --alias order --operation filter

用 dataset code 而不是别名也可以:

rabetbase codegen sdk --code  --operation getOne

输出默认打在终端。想写入文件用重定向:

rabetbase codegen sdk --alias order --operation filter > ./src/api/order-filter.ts

不需要文件顶部的 import 时:

rabetbase codegen sdk --alias order --operation filter --skip-imports

dataset operations 里还看不清参数,先去 API 与数据集:拉配置、看清数据--operation 配上。

按已保存 SQL 生成调用代码:codegen sql

rabetbase codegen sql --sqlcode xxxxxxxx-xxxxxxxx

生成目标可选 SDK 调用或**BFF 内调用 **(具体枚举以 help 为准):

rabetbase codegen sql --sqlcode xxxxxxxx-xxxxxxxx --target sdk
rabetbase codegen sql --sqlcode xxxxxxxx-xxxxxxxx --target bff

同样可重定向到文件。与 自定义 SQL:从写到执行 搭配使用:先 sql createsql push,确认平台上已有最新 SQL,再执行 codegen sql

菜单:把本地页面同步到平台 menu sync

你本地加了新页面、改了路由,希望控制台菜单与之一致时:

rabetbase menu sync

通常是交互式(勾选、确认)。若在 CI 或非交互环境,需按项目要求传 --yes--params 等(见 rabetbase menu sync --help)。

菜单:更新线上 CDN 资源 menu update

批量更新线上菜单里引用的 CDN 资源 URL(例如换了静态资源地址):

rabetbase menu update

sync 解决的问题不同:sync 偏「页面结构对齐」,update 偏「资源地址批量替换」。menu update 会保留页面原有 extend 配置,不会因为更新 JS / CSS 资源顺手覆盖业务扩展字段。

非交互场景建议先 dry-run:

rabetbase menu update \
--params '{"jsUrl":"https://cdn.example.com/app.js","cssUrl":"https://cdn.example.com/app.css"}' \
--dry-run

确认后执行:

rabetbase menu update \
--params '{"jsUrl":"https://cdn.example.com/app.js","cssUrl":"https://cdn.example.com/app.css"}' \
--yes

资源更新模式:

模式行为适用场景
--mode replace按传入 JS / CSS 重写资源集合,默认模式完整发布一组新资源
--mode patch只替换本次传入的资源类型,未传的类型保持不变只替换 JS 或只替换 CSS

replace 模式默认不会移除已有 JS 资源。如果本次确实要用传入资源替换掉旧 JS 集合,才显式加 --force

rabetbase menu update \
--params '{"cssUrl":"https://cdn.example.com/app.css"}' \
--mode replace \
--force \
--yes

menu updatehigh-risk-write,非交互环境执行真实更新时必须带 --yes;能预览的场景先用 --dry-run


小结

  • codegen sdk:数据集操作 → TS 片段。
  • codegen sql:已保存 SQL → TS 片段。
  • menu sync / menu update:菜单与资源维护。

CLI 自检、升级见 维护与排障