buffalo help 是唯一可靠命令查询方式,动态列出所有已注册子命令及简短说明;加 -v 可显示隐藏命令和详细描述,自定义命令需显式注册且首字母大写。

buffalo help 是唯一可靠方式,没有全局命令列表页或 Web 文档入口
buffalo help 显示所有可用子命令
Buffalo 的命令体系完全由 Cobra 驱动,所有子命令(如 buffalo dev、buffalo generate、buffalo task)都注册在根命令下。运行 buffalo help 会列出当前安装版本支持的全部命令及其简短说明。
- 输出是动态生成的,取决于你项目中是否注册了自定义命令(比如
buffalo/cmd/root.go里rootCmd.AddCommand(...)添加的) - 如果只看到基础命令(
dev、build、test),说明项目没加自定义命令;若多了migrate:reset或import-users,那就是你手动注入的 - 子命令本身也支持
help,例如buffalo generate help或buffalo generate model --help,会显示参数和用法
buffalo help -v 显示隐藏命令和完整描述
默认 buffalo help 只显示 Short 字段(一行摘要),加 -v 参数后会输出 Long 字段(多行详细说明)以及标记为 Hidden: true 的命令(如 buffalo build:assets)。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
- 某些内部命令(如
buffalo build:templates)不会出现在普通 help 列表里,但buffalo help -v能挖出来 - 注意:这些隐藏命令不是公开 API,可能在小版本升级中被移除或重命名,不建议在 CI 或部署脚本中硬编码调用
- 如果你在文档里看到某个命令却
buffalo help不出来,先试buffalo help -v,再确认是否是旧版 Buffalo 的遗留命令(比如 v0.18.x 有buffalo fix,v2.x 已删)
项目内自定义命令不会自动出现在 help 里?检查 rootCmd 注册逻辑
自定义命令(如 buffalo migrate:reset)必须显式调用 rootCmd.AddCommand(...) 才会被 buffalo help 收录。常见漏掉的点:
-
buffalo/cmd/root.go里定义了var resetMigrateCmd = &cobra.Command{...},但忘了在init()函数里执行rootCmd.AddCommand(resetMigrateCmd) - 命令变量名用了小写开头(如
resetMigrateCmd),但 Go 包级变量必须大写首字母才能被外部包访问——Cobra 根命令无法反射到它 - 项目用了
--api创建,但buffalo/cmd/目录是手动创建的,且main.go没 import 这个包(导致 init() 不执行)
真正容易被忽略的是:help 输出不反映环境状态。比如 buffalo task 列出来的任务,只取决于 tasks/tasks.go 是否被 import 并执行注册逻辑,和当前 BUFFALO_ENV 无关;而 buffalo test 是否能跑通,取决于 database.yml 是否可读、pop 连接是否初始化——help 看不到这些运行时依赖。

















