[zeromicro/go-zero]goctl template --home 指定自定义模板目录不生效

2023-12-22 484 views
4

我还是用中文描述吧!

goctl release v1.2.4 使用 --home 指定自定义模板目录不生效 版本:

➜ goctl --version
goctl version 1.2.3-cli darwin/amd64
➜ goctl api go -api="test.api" -dir="api" -style GoZero --home ./template/1.2.3-cli

我修改了默认模板中 api 的 handler 和 logic 模板 api/handler.tplapi/logic.tpl ,通过上面的命令生成后发现还是使用的默认自带的模板。 更具体一点,我是参照 https://go-zero.dev/cn/template.html 这个例子,更改了 handler 中的返回格式 将 httpx.OkJson(w, body) 改成了 reponse.Response(w, resp, err) 这种。

开始我以为是目录的问题,然后我就放到了 ~/.goctl 下面,测试发现还是不生效。

后来我又换回了之前使用的 goctl v1.2.1 , 发现这个是生效的。所以怀疑是 v1.2.4 有问题。

回答

1

感谢反馈,这个问题已经发现了,目前我们已经在讨论这个解决方案,目前的解决方案是在通过 --home 指定的目录下需要创建一个与 goctl 版本号的目录来存放你的模板,这样 --home才能生效,如你的 goctl 版本为 1.2.3, 你的自定模板版本应该在 path/to/custom/1.2.3/templates, 那么 --home 指定的值应该为 path/to/custom

8

突然有一个想法,是否可以根据goctl的当前版本来自动判断加载哪个目录。或者是,将版本作为一个参数传入。 当然,不清楚你们这样设计的目的是为什么解决什么问题。只是觉得对于开发者来说,在使用上还是越简单越好,可能设计就会比较复杂一些。 谢谢!