buffalo new myapp 默认生成含Go模块、前端配置、数据库迁移及actions/models的完整可运行骨架;需空目录执行,不可跳过,否则buffalo dev必失败。

buffalo new 命令创建项目时默认行为是什么
直接运行 buffalo new myapp 会创建完整项目结构,包括 Go 模块、前端构建配置、数据库迁移目录和预设的 actions / models 包。它不是只建空目录,而是生成可立即 buffalo dev 启动的最小可行骨架。
如何跳过数据库或前端工具链初始化
很多新手在内网或轻量场景下不需要 PostgreSQL 或 Webpack,但默认命令会强行安装依赖并报错。这时要用明确的标志控制:
-
buffalo new myapp --db-type sqlite3或--db-type none避免 PostgreSQL 客户端安装失败 -
buffalo new myapp --skip-webpack跳过node_modules和webpack.config.js生成 -
buffalo new myapp --api省去 HTML 模板、CSS 构建等前端相关文件
注意:--api 和 --skip-webpack 可同时使用,但 --api 已隐含跳过大部分前端内容,不必重复加 --skip-webpack。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
常见错误:command not found 或 plugin install failed
这通常不是目录创建问题,而是 Buffalo CLI 本身没装对,或 Go module 初始化失败:
- 确认已用
go install github.com/gobuffalo/buffalo/v2@latest安装(注意v2路径,v1 已废弃) - 运行前确保
$GOPATH/bin在$PATH中,否则 shell 找不到buffalo命令 - 若提示
plugin install failed: no matching versions,大概率是 Go 版本太低(Buffalo v2 要求 Go ≥ 1.21) - Windows 用户遇到路径权限错误,建议在管理员 PowerShell 中运行,或改用 WSL
生成后第一件事:检查 go.mod 和 actions/app.go
项目根目录的 go.mod 必须包含 github.com/gobuffalo/buffalo/v2 且版本号匹配你安装的 CLI;actions/app.go 是路由入口,哪怕只是 buffalo dev 能跑通,也得确认里面没残留旧版 API 调用(比如 buffalo.App() vs 新版 buffalo.New())。
真正容易被忽略的是 buffalo new 会根据当前工作目录的父路径推断模块名,如果在 $HOME/go/src/example.com/foo 下执行,生成的 go.mod 会写 module example.com/foo —— 这会影响后续 go get 和插件加载,不匹配时连 buffalo generate 都可能静默失败。

















