Skip to content

Latest commit

 

History

History
42 lines (29 loc) · 2.39 KB

material-sync-solution.md

File metadata and controls

42 lines (29 loc) · 2.39 KB

物料同步方案

由于当前情况下物料无法通过页面交互维护,提供一个临时方案,由前端托管物料。 在本地运行时提供nodejs脚本维护物料,执行脚本保证mockServer工程和前端工程物料的同步。如果启动了后端服务,还可以连接数据库,保证本地json文件和数据库的一致性。

物料同步数据流转图

拆分脚本

pnpm splitMaterials

之前对物料的修改要先从大文件bundle.json中找到对应组件,然后进行修改调试,很容易出现找错组件或难以对比历史的情况。 执行该脚本可以将物料资产包拆分为单个组件或区块,再结合构建的脚本,可以将修改限制在相对较小的文件中,便于维护物料和对比变更。

构建脚本

pnpm buildMaterials

结合拆分物料的脚本,只关心单个组件的变化。通过读取、写入本地文件和执行 sql 语句,同步更新物料资产包、应用数据和数据库,保证物料的一致性:

  • 读取单个组件或区块文件,���建为物料资产包
  • 读取单个组件文件,更新应用 mock 数据 appinfo 中的组件数据
  • 连接数据库,初始化组件表,将组件数据写入数据库
  • 监听组件文件变化,重新构建物料资产包和应用 mock 数据,新增或更新数据库中组件数据

注意事项

  1. 本地还没有执行过拆分脚本的,先执行一次,后续可以不用再执行,只需要对单个组件进行维护
  2. 单个组件文件需要遵循物料协议,更新文件后保存即可触发重新构建物料资产包,刷新页面后生效
  3. 连接数据库失败,不影响构建本地物料资产包即bundle.json
  4. 连接数据库需要的配置项在.env.local

部署建议

需要将设计器进行部署时,关于物料的部署方案,以下供参考:

  1. 将bundle.json上传到CDN或是自己搭建的静态服务器,获得文件地址,修改lowcode.config.js��物料请求地址
  2. 将bundle.json随设计器一起打包,修改useResource.fetchMaterial中的实现,物料资产包数据由请求接口改为加载本地文件
  3. 新增构建物料资产包接口,从数据库获取组件表数据,组装成符合物料协议的物料资产包,将物料资产包的请求方式由CDN地址改为请求接口