Buffalo项目首次运行前必须依次执行go mod tidy、npm install(或yarn install)、按需安装数据库驱动,三者缺一不可;跳过任一环节会导致buffalo dev启动失败,如panic报undefined: pop.Connection或unknown driver错误。

Buffalo 项目首次运行前,依赖必须分层安装且顺序不可颠倒——Go 模块、前端资产、数据库驱动三者缺一不可,跳过任一环节都会让 buffalo dev 启动失败。
go mod tidy 是必须手动执行的第一步
Buffalo CLI 生成的 go.mod 只声明顶层依赖(如 github.com/gobuffalo/buffalo),但实际运行时需要 github.com/gobuffalo/pop/v6、github.com/gobuffalo/validate 等子模块。不执行 go mod tidy,后续 buffalo db migrate 会 panic 报 undefined: pop.Connection 类错误。
- 进入项目根目录后立即运行:
go mod tidy - 若国内拉取慢,先执行:
go env -w GOPROXY=https://goproxy.cn,direct - 不要用
go get ./...替代——它会漏掉 test 依赖和 indirect 标记项
npm install 或 yarn install 不能跳过,哪怕你不用前端
buffalo dev 默认启动时会尝试调用 Webpack 编译 assets,找不到 node_modules 直接退出,报错类似 exec: "yarn": executable file not found in $PATH 或 Cannot find module 'webpack'。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
- 即使项目是
--api模式,也要进assets/目录执行:yarn install --frozen-lockfile - 如果确定永远不用前端,可在创建时加
--skip-yarn:buffalo new myapi --api --skip-yarn,但注意:这仅跳过yarn install,不删除assets/目录结构 - Windows 用户若用 Git Bash,确保
yarn在 PATH 中;WSL2 下推荐用原生 Ubuntu 的yarn,而非 Windows 版本
数据库驱动依赖要按需显式安装
Buffalo 默认只引入 github.com/gobuffalo/pop/v6,但具体数据库驱动(如 PostgreSQL、MySQL、SQLite)需单独拉取,否则 buffalo db create 会报 unknown driver "postgres"。
- PostgreSQL:运行
go get github.com/gobuffalo/pop/v6/soda和go get github.com/lib/pq - MySQL:运行
go get github.com/go-sql-driver/mysql - SQLite:运行
go get github.com/mattn/go-sqlite3(注意:需系统有gcc,macOS 用户可能还需xcode-select --install) - 验证是否生效:执行
buffalo db list应列出可用驱动,而不是空输出
最容易被忽略的是:所有依赖安装必须在 buffalo dev 之前完成,且不能依赖 IDE 自动触发 go mod tidy——某些编辑器会在后台静默失败,而终端里没报错,结果服务起来后路由 404 或 DB 连不上,排查成本远高于多敲一次命令。










