必须先安装go 1.21+并配置gobin到path,否则buffalo命令不可用;node.js 18.x和yarn 1.22+为前端构建必需,数据库服务(如postgresql)需在首次buffalo dev前启动。

必须装 Go 1.21+,不能只装 Node.js 或数据库就以为能跑 Buffalo;GOBIN 要加入 PATH,否则 buffalo 命令找不到。
Go 版本和 GOPATH / GOBIN 设置
Buffalo 是 Go 写的 CLI 工具,依赖 Go 编译器和标准库。低于 1.21 的版本(比如 1.19)会因 io/fs 和泛型支持问题导致 buffalo new 失败或生成项目无法构建。
- 运行
go version确认输出类似go version go1.21.10 darwin/arm64 -
GOBIN必须设为可写路径,例如export GOBIN=$HOME/go/bin,然后source ~/.zshrc(或对应 shell 配置) - 不推荐用
sudo go install—— 权限混乱会导致后续buffalo dev无法写入tmp/目录
Node.js 和 yarn 不是可选,而是默认前端流程必需
哪怕你用 --api 创建项目,buffalo dev 启动时仍会尝试读取 assets/package.json 并触发 yarn run build。没装 Node.js 会卡在 “Running yarn install…” 且无报错提示。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
- 最低要求:Node.js 18.x(LTS),
yarn --version≥ 1.22(v2+ 不兼容 Buffalo 当前 asset pipeline) - 如果只想跳过前端构建,可在
app.go中注释掉app.Use(plugins.Static())和app.Use(plugins.Favicon()),但首次buffalo new仍需yarn存在 - 国内用户务必提前配置镜像:
yarn config set registry https://registry.npm.taobao.org
数据库服务不是“安装 Buffalo 时需要”,而是“第一次 buffalo dev 就要连”
Buffalo 不自带数据库,但 buffalo dev 默认会调用 models.NewDB(),进而尝试连接 config/database.yml 里写的地址。没启动 PostgreSQL 或 MySQL,服务根本起不来,报错是 “dial tcp 127.0.0.1:5432: connect: connection refused”,不是 Buffalo 自身问题。
- 开发阶段最省事的是用 Docker 启一个:
docker run -d --name pg-dev -e POSTGRES_PASSWORD=dev -p 5432:5432 -v pgdata:/var/lib/postgresql/data postgres:15 - 别信
database.yml里写host: localhost就一定通 —— macOS 上localhost可能走 IPv6,而 PostgreSQL 默认只监听 IPv4;改用host: 127.0.0.1更稳 - MySQL 用户注意:
sslmode: "false"必须显式写进database.yml,否则 pop 连接器会尝试 SSL 握手并超时
最容易被忽略的是:Buffalo 的 buffalo dev 会同时监听 Go HTTP server(3000 端口)和 Webpack Dev Server(3001 端口)。如果 3001 被占,它不会报错,但前端资源加载失败,页面白屏——此时要查 assets/webpack.config.js 里的 port 配置,而不是怀疑 Buffalo 安装不全。










