Buffalo CLI 必须安装且 Go 环境需为 1.21+,$GOPATH/bin 必须加入 PATH;通过 go install 或预编译包安装 buffalo 命令行工具;用 buffalo new 初始化项目,配置 database.yml 后执行 buffalo db create/migrate,最后 buffalo dev 启动。

Buffalo CLI 必须先装好,否则所有 buffalo 命令都报 command not found;Go 环境必须是 1.21+,低于这个版本 go install 会失败或生成不可用的二进制。
确认并安装 Go 1.21+ 环境
Buffalo 是 Go 写的,依赖 Go 的构建链和模块系统,不是“装了 Go 就能用 Buffalo”。
- 运行
go version,输出必须类似go version go1.26.0 darwin/arm64;若低于 1.21,请去 https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 下载 1.26.0(当前稳定兼容版本) - 运行
go env GOPATH,确保有非空输出(如/Users/me/go);这是go install默认放二进制的位置 - 检查
$GOPATH/bin是否已加入系统PATH:在新终端中执行echo $PATH,确认含该路径;Windows 用户请检查系统环境变量中是否包含%GOPATH%\bin
安装 buffalo CLI 工具
Buffalo 没有“框架安装”这回事——你装的是 buffalo 这个命令行工具,它负责生成、运行、迁移项目。不装它,buffalo new、buffalo dev 全部失效。
- 推荐方式(有 Go 环境时):
go install github.com/gobuffalo/cli/cmd/buffalo@latest - 若提示
cannot find module providing package,大概率是 Go 版本太低或 GitHub 访问失败;此时改用预编译包 - Linux/macOS 手动安装:下载 GitHub Releases 页最新
buffalo_*.tar.gz,解压后把buffalo二进制复制到/usr/local/bin/并chmod +x - Windows 用户推荐 Scoop:
scoop bucket add extras && scoop install buffalo(自动注册 PATH) - 验证:
buffalo version应输出类似v0.18.13;若报command not found,说明$GOPATH/bin或你放二进制的目录没进 PATH
初始化 Buffalo 项目并跑起来
Buffalo 不是库,不能 go get 到项目里;它是脚手架,用 buffalo new 生成完整项目结构,再靠 buffalo dev 启动。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
- 新建空目录,进入后执行:
buffalo new myapp(加--api可跳过前端资产) - 进入
myapp目录,先拉 Go 依赖:go mod tidy;再装前端依赖:npm install(即使不用 assets,buffalo dev也会尝试构建,缺node_modules会直接退出) - 编辑
config/database.yml中development区块,填对dialect(必须小写,如"postgres")、host、port、user、password;dialect: "postgresql"或"pg"都会失败 - 执行
buffalo db create创建库,再buffalo db migrate执行迁移;跳过任一环节,buffalo dev启动后访问页面就会 panic - 最后运行
buffalo dev;默认监听:3000,若端口被占,CLI 会提示新地址——但不会自动打开浏览器,得自己去看终端输出
常见卡点与绕过方式
绝大多数“装了跑不起来”的问题,集中在三处:PATH 缺失、database.yml 配置错、SQLite 缺 gcc。
-
buffalo: command not found→ 90% 是$GOPATH/bin没进 PATH;关掉终端重开,再echo $PATH确认 -
dial tcp 127.0.0.1:5432: connect: connection refused→ 数据库服务根本没启动,或database.yml的host/port和真实实例不一致;先telnet localhost 5432测试连通性 - 用
--with-sqlite3初始化项目却卡在go build→ Linux/macOS 缺gcc,Windows 缺mingw;要么装编译器,要么换 PostgreSQL/MySQL -
buffalo dev启动后修改代码无反应 → 检查是否真在项目根目录下运行;确认main.go中有app.Serve()调用,或存在buffalo.dev.yml;YAML 缩进错误(比如用了 tab 或 3 个空格)会导致监听退化为默认行为
真正麻烦的不是安装步骤,而是每个环节都有隐性前提:Go 版本、PATH、数据库进程、YAML 缩进、甚至 SQLite 驱动编译器——漏掉任何一个,都会卡在看似无关的错误里。










