前端生成组件模版原理-Golang版

结构体如下
package dto
type RequestBody struct {
WidgetName string `json:"widgetName"`
WidgetId string `json:"widgetId"`
Menu []map[string]interface{} `json:"menu"`
MenuMap map[string]map[string]interface{} `json:"menuMap"`
Type int `json:"type"`
}
type MenuConfig struct {
Menu []map[string]interface{}
MenuMap map[string]map[string]interface{}
}
type ErrorType struct {
string
int
error
}
CreateService 函数功能说明
CreateService
是一个用于自动生成前端组件模块(widget)的服务函数,核心流程如下:
路径初始化
- 获取项目中
src/
、template/
、menu.ts
、widgets 等路径。
模板复制
- 使用
otiai10/copy
将template
文件夹复制到src/
,生成 widget 临时文件夹。
文件内容与名称替换
- 遍历临时目录,将文件中
MyPluginName
等关键词替换为实际组件名。 - 对应文件名同时重命名。
目录移动与清理
- 删除中间过程路径;
- 将临时 widget 目录迁移到
widgets/
目录。
菜单更新
- 构建并追加新的菜单项及映射至
menu.ts
文件; - 自动生成符合 TypeScript 类型声明的结构。