Web 端
2022/12/19大约 2 分钟
vben / vben5 代码生成
vben5
# Student 例子
goctls frontend vben5 -a /home/ryan/GolandProjects/simple-admin-example-api/desc/student.api -o ./apps/simple-admin-core -f example -p example-api -s student注意
vben 和 vben5 的参数一致,仅命令名称不同
frontend vben frontend vben5参数介绍
| 参数 | 必须 | 默认值 | 介绍 | 使用方法 |
|---|---|---|---|---|
| api_file | 是 | api 文件的绝对路径 | 填入 api 文件的绝对路径,如上面的 student.api | |
| output | 是 | 输出路径 | 输入 simple admin backend ui 目录, vben5 需为 apps/simple-admin-core 目录 | |
| folder_name | 是 | 文件夹名称 | core 服务是 sys, 示例项目是 example | |
| prefix | 是 | 请求前缀 | 请求前缀用于请求转发,如 sys-api, 示例项目为 example-api, 需要修改 env.development,添加 proxy | |
| sub_folder | 否 | 子目录 | 用于在 views 下创建子目录,如 sys 有 user,token 等子目录 | |
| form_type | 是 | drawer | 表格容器 | 支持 drawer 抽屉容器, modal 弹窗容器 |
| overwrite | 否 | false | 是否覆盖生成文件 | true 则会覆盖所有生成的文件 |
运行
goctls frontend vben5 --help查看详细命令
$ goctls frontend vben5 -h
生成与前端相关的文件 (Vben5)
Usage:
goctls frontend vben5 [flags]
Flags:
-a, --api_file string API 文件的绝对路径
-f, --folder_name string 在不同目录中生成文件的文件夹名称。例如,存储文件管理器服务文件的简单管理后台 UI 中的文件夹名称 (default "sys")
-t, --form_type string 表单容器类型, 默认为 modal, 可选值为 modal (default "drawer")
-h, --help help for vben5
--model_chinese_name string 模型的中文名称
--model_english_name string 模型的英文名称
-m, --model_name string 模型名称。例如,Example
-o, --output string 输出目录,应该是Simple Admin Backend UI 的根目录 (default "./")
-w, --overwrite 是否覆盖文件,它将覆盖所有生成的文件
-p, --prefix string 代理请求的前缀。例如,sys-api (default "sys-api")
-s, --sub_folder string 子目录名称。例如,src/views/sys 子目录用户,路径为 src/views/sys/user执行命令后会生成下面的代码
src/api/example/student.ts src/api/example/model/student.tsAPI 声明和请求代码src/locales/lang/en-US/example.json src/locales/lang/zh-CN/example.json国际化文件src/views/example/*视图代码
生成代码后还需要做的事
- 修改
vite.config.ts添加代理,修改scripts/deploy/nginx.conf添加部署配置 - 修改国际化文件,优化中文翻译
- 修改 views 中的
schemas.ts,优化行列及组件 - 添加菜单初始化代码
常见问题
- 出现 “failed to get the fields of the model, please check the api file and your model name” 错误
API 文件中的定义必须是 Schema 名称加 Info, 如 StudentInfo, 其他不符合规范的名称无法读取生成