Buffalo build 生成的临时文件默认存放在项目根目录的 tmp 和 bin 目录中:tmp 存放编译中间产物(如模板缓存、asset pipeline 文件),bin 存放最终可执行文件;二者均可安全删除,但删 tmp 会导致首次重建变慢。

buffalo build 生成的临时文件在哪
Buffalo 默认在项目根目录下生成 tmp 和 bin 两个关键临时目录:tmp 存放编译中间产物(如 Go build cache 的符号链接、模板编译缓存、asset pipeline 中间文件),bin 存放最终构建出的可执行文件。这些不是 Go 标准的 $GOCACHE 或 $GOPATH/pkg,而是 Buffalo 自己管理的本地工作区。
直接删 tmp/ 和 bin/ 安全吗
安全,但要注意两点:
-
tmp/下的文件全部可重建,删掉后首次buffalo build或buffalo dev会稍慢(尤其含 webpack 或 templates 的项目) -
bin/是纯输出目录,删掉不影响源码或配置,下次构建自动重写 - 别误删
tmp/build外的自定义子目录(比如你手动加的tmp/my-cache)
用 buffalo clean 命令清理什么
buffalo clean 是官方提供的清理命令,但它只做三件事:
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
- 删除
tmp/目录(不含tmp/build中的某些锁定文件,取决于 Buffalo 版本) - 删除
bin/目录 - 调用
go clean -cache -modcache—— 注意:这会清空全局 Go 模块缓存和构建缓存,影响所有 Go 项目,不单是当前 Buffalo 项目
如果你只想清理当前项目、避免波及其他 Go 工程,就别用 buffalo clean,改用手动删 tmp/ 和 bin/。
如何避免反复生成大量临时文件
高频编译时 tmp/ 膨胀快,常见原因和对策:
- 启用了
webpack且未配置devtool: 'source-map'以外的模式 → 改用eval-source-map可减少磁盘写入 - 模板变更频繁触发
templates/*.html全量重编译 → 确保buffalo dev运行时没开启冗余的 watch 规则(检查buffalo.yml中的watchers配置) - CI/CD 中反复
buffalo build --static→ 加--output ./dist显式指定输出,并在脚本开头加rm -rf tmp/ bin/,避免残留
真正难清理的其实是 Go 的 $GOCACHE,它不在项目内,但 Buffalo 构建过程重度依赖;如果发现磁盘占用异常高,记得单独运行 go clean -cache,而不是只盯项目目录。

















