# 使用 fresh 来提升你的 Golang 开发效率

- Link: https://www.ixiqin.com/2023/08/22/use-fresh-to-improve-your-golang-development-efficiency/
- Published: 2023-08-22T06:00:00+08:00
- Author: 白宦成

文章目录

 [Toggle](https://www.ixiqin.com/2023/08/22/use-fresh-to-improve-your-golang-development-efficiency/#)

 * [fresh 的执行效果](https://www.ixiqin.com/2023/08/22/use-fresh-to-improve-your-golang-development-efficiency/#fresh_%e7%9a%84%e6%89%a7%e8%a1%8c%e6%95%88%e6%9e%9c)
 * [安装](https://www.ixiqin.com/2023/08/22/use-fresh-to-improve-your-golang-development-efficiency/#%e5%ae%89%e8%a3%85)
 * [执行](https://www.ixiqin.com/2023/08/22/use-fresh-to-improve-your-golang-development-efficiency/#%e6%89%a7%e8%a1%8c)

Golang 作为一个编译型语言，在编写程序时，一个不太方便的点便是每次修改完代码，都需要
重新编译才能测试效果。虽然你可以使用 `go run main.go` 命令来运行一个 go 文件，但
由于项目往往文件比较多、修改时还是需要手动输入命令比较麻烦，所以给 Golang 的开发
过程带来了不少的问题。

[fresh](https://github.com/gravityblast/fresh) 就是一个帮助你执行一些重复命令的命令
行工具，有了 [fresh](https://github.com/gravityblast/fresh) ，你就可以不用自己手
动执行 `go run main.go`，它在检测到文件发上了变化后，会自动帮你中断掉当前进程，并
重新执行命令，帮你实现 live-reload 的效果。

## fresh 的执行效果

![](https://postimg.aliavv.com/m1/v1btrb.png)

[https://github.com/gravityblast/fresh](https://github.com/gravityblast/fresh)

## 安装

安装比较简单，执行 如下命令后，你就可以在任何地方执行 `fresh` 命令了。

    ```javascript
    go get github.com/pilu/fresh
    Code language: JavaScript (javascript)
    ```

## 执行

当你当前目录有 `main.go` 文件时，直接执行 `fresh` 就会自动执行 `main.go` 文件。不过，
如果你想要自定义的话，也可以通过配置文件来完成。创建一个 sample.conf 文件，贴入如下
配置，并执行 `fresh -c sample.conf` 就可以让 fresh 按照你的配置来执行命令。

    ```shcb-line-numbers
    root:              .
    tmp_path:          ./tmp
    build_name:        runner-build
    build_log:         runner-build-errors.log
    valid_ext:         .go, .tpl, .tmpl, .html
    no_rebuild_ext:    .tpl, .tmpl, .html
    ignored:           assets, tmp
    build_delay:       600
    colors:            1
    log_color_main:    cyan
    log_color_build:   yellow
    log_color_runner:  green
    log_color_watcher: magenta
    log_color_app:<a href="https://github.com/gravityblast/fresh#usage"></a>
    Code language: HTML, XML (xml)
    ```
