Автоматическая компиляция Golang проекта при изменении файлов

В этой статье настроим слежение за изменением файлов. При котором будет автоматически перекомпилироваться Golang проект.

Оглавление статьи

  1. Вводная часть
  2. Установка modd
  3. Настройка modd
  4. Запуск modd
  5. Подведем итоги

Вводная часть

Golang является компилируемым языком программирования. Вследствие чего каждое изменение кода необходимо каждый раз заново компилировать, чтобы увидеть изменения в программе.

Данная манипуляция может утомить если приходится раз за разом перекомпилировать проект. В данной статье мы рассмотрим как можно упростить этот момент в разработке.

Установка modd

Для решения нашей задачи необходимо установить пакет modd. Для этого в терминале введем команду:

BASH
go install github.com/cortesi/modd/cmd/modd@latest

Данный пакет будет скачен в каталог ~/golang/packages/bin, который мы настроили в прошлой статье.

Настройка modd

В корне проекта создадим файл modd.conf со следующим содержимым:

MODD.CONF
# Проверка всех тестов при первой запуске
**/*.go {
  prep: go test @dirmods
}

# Автоматическая компиляция проекта при изменении файлов
# Исключает все тестовые файлы *_test.go
**/*.go !**/*_test.go {
  prep: go build -o ./bin ./cmd/main.go
  daemon +sigterm: ./bin
}

При первом запуске modd пакета будут проверены все имеющиеся тесты. Далее уже идет непосредственно настройки слежения за изменением файлов.

В данном случае мы следим за изменением всех файлов с расширением .go кроме тестовых. При изменении содержимого какого либо go файла будет происходить перекомпиляция всего проекта.

Строкой prep: go build -o ./bin ./cmd/main.go мы говорим, чтобы компилировался файл ./cmd/main.go, а результат его компиляции был помещен в каталоге ./bin.

Строкой daemon +sigterm: ./bin мы автоматически запускаем скомпилированный файл, в результате чего отобразится актуальный результат.

Запуск modd

Чтобы запустить режим слежения за изменением файлов, достаточно ввести в терминале команду:

BASH
modd

Иногда могут возникнуть случаи при которых вы будете ожидать перекомпиляцию, но она не произойдет. Например, при какой-либо серьезной ошибки в программе. Чтобы решить этот нюанс, необходимо отменить слежение за изменение файлов, нажав в терминале горячие клавиши Ctrl + C и по новой выполнить команду modd.

Подведем итоги

В этой статье мы научились пользоваться довольно полезным инструментом modd, который позволяет автоматизировать рутину компиляции программы при разработке.

Предыдущая статья Установка и использование нескольких версий Golang Следующая статья Создание удобной обертки над Chi роутером с доступом к данным через context