Open xiaohuoni opened 3 years ago
期望 start 能做 DynamicForm 和 Generator,预期中是将模版的维护开放到社区中,这样之前的模版可以很好的再利用,也可以吸收更多开源社区优质的模版。因此设想着能否告诉 start 一个模版git地址,它就能知道该做些什么事情?
export const tempsList = [{ type: 'some', url: 'https://github.com/aa/bc', path: '' }, { type: 'other', url: 'https://github.com/aa/bc', path: '' }, { type: 'some', url: 'https://github.com/aa/bc', path: 'template' // 支持模版不在根目录下 }];
根据 tempsList 清单,将所有模版下载到本地 .temp-cache ,根据各自的 create-umi中的 ignore* 对本地的模版文件进行裁剪。
tempsList
.temp-cache
create-umi
ignore*
遍历 .temp-cache 取到模版文件的清单数据。
绘制左侧选择页面
最终这个页面会吐出一个配置,交给 Start 的 Generator。
根据配置生成项目的 package.json 和 config/config.t|js
在这个时候清除 package.json 中的 create-umi
根据 configschema 动态生成表单组件
这个先不要做了,我们没有一个合适的表单引擎
期望 start 能做 DynamicForm 和 Generator,预期中是将模版的维护开放到社区中,这样之前的模版可以很好的再利用,也可以吸收更多开源社区优质的模版。因此设想着能否告诉 start 一个模版git地址,它就能知道该做些什么事情?
约定
大致逻辑
下载模版
根据
tempsList
清单,将所有模版下载到本地.temp-cache
,根据各自的create-umi
中的ignore*
对本地的模版文件进行裁剪。获取清单数据
遍历
.temp-cache
取到模版文件的清单数据。绘制左侧选择页面
根据 configschema 动态生成表单组件
最终这个页面会吐出一个配置,交给 Start 的 Generator。
Generator 生成最终的文件
根据配置生成项目的 package.json 和 config/config.t|js