lowcode-engine icon indicating copy to clipboard operation
lowcode-engine copied to clipboard

讨论低代码物料包进行版本控制的方案

Open chenrunsong opened this issue 1 year ago • 6 comments

有没有比较好的,在项目工程中即可实现的物料包版本控制的方案?确保组件更新升级后能不影响原来已经使用旧版本组件的页面?即原有页面使用旧版本组件,新发布页面使用更新后的组件。

chenrunsong avatar Feb 19 '24 10:02 chenrunsong

现在就是啊,你的组件不是通过版本号升级的吗

zhengzhuang96 avatar Feb 23 '24 01:02 zhengzhuang96

我的意思是如何能做到更新后的组件只对后续选择和使用这个组件的页面生效,而原来的页面还是使用历史版本。比如组件A 在v1版本的时候被页面X引用了,后面组件A升级到了v2版本,但是页面X中的组件A 还是保持v1版本的状态,不受后续版本迭代可能带来的影响。而不像现在这样,更新都是线性的,我对一个物料进行了更新,如果产生一个bug,会影响到之前所有已经引入此物料的页面 @zhengzhuang96

chenrunsong avatar Feb 23 '24 07:02 chenrunsong

一个页面里面的依赖项保存之后,会保存你所使用组价的版本号,下次打开还是打包的你上次保存的版本号,只有重新点击保存之后,依赖的页面才会更新

zhengzhuang96 avatar Feb 23 '24 08:02 zhengzhuang96

  • 方案 1:把物料信息和组件信息存成一个大的 json 就行:
{
   "material": { "packages": [], "components": {} },
   "schema": {}
}
  • 方案 2: 灵活一点 material 和 schema 存成两个字段,通过pageId等关联起来

方案 1:优点存储少,实现快速;缺点,必须变更整体才能生效 方案 2:优点灵活,物料和视图更新解耦;缺点实现成本高,需要接触后端服务等存储关联信息

jiangtao avatar Feb 26 '24 05:02 jiangtao