求增强版生成模板的思路
yutucc opened this issue · comments
【需求描述】
cms系统的基本框架:
如上图,我们的cms系统基本上都是上面的结构(搜索 + table列表 + modal弹框输入)
现在的想法是根据一份配置文件直接生成 models
、routes
、services
:
配置文件中写Table列表中每一列的名字以及后台的字段名,Form的输入Item同样(并且向根据不同的类型给不同的组件,例如 Input
、DatePicker
之类的)
相当于说将 routes
中Table的columns以及 Form
的 FormItem
都通过配置文件自动生成:
从而代替人工一个个替换,一个个添加的苦力活。
【问题】
yeoman
,应该只能初始化项目的目录结构(不知道我说的对不对),想生成项目中的模板文件,可能不太合适- 目前觉得这个需求跟
ng-cli
或者是vue-cli
挺像的,也知道ant-design-pro-cli
也有提供类似的功能,但还没有完成实现以上需求。 - 所以现在的想法是想试试改一下
ant-design-pro-cli
的源码,看能否实现需求。 - 不知自己的这个思路有没有问题,或者有没有其它更快去做这些基本上都是固定格式的cms模块(基本上确实都只是简单的苦力活,想解放生产力o(╥﹏╥)o)
我们的后台基本就是这样做的,之前是前端做,现在交给后台+脚手架了。
后台系统写了一个脚手架,主要就是根据Swagger API里面的某个接口生成对应的页面。
基本实现思路:
- 页面基本信息设置(这个用问答的方式处理:路由名称、接口地址、是否需要一些具体的信息等。)
- 解析
Swagger API
,把对应的schema type
转换成JavaScript
的类型(或者说直接转换成Antd
对应的组件),这个是为了生成FORM
表单 - 解析
API
里面的输出字段,根据这些类型生成Table
的columns
- 生成
TypeScript
类型定义、接口等
现在我们也就做了这两个比较常用的,form
的添加、修改,列表页面,不过确实能省了很多时间。
这些也只是针对特定的项目来做,不同的项目模版也不一样。
随便找个nodejs模版都好了,我们用 handlebar