Оглавление статьи
Вводная часть
Golang является компилируемым языком программирования. Вследствие чего каждое изменение кода необходимо каждый раз заново компилировать, чтобы увидеть изменения в программе.
Данная манипуляция может утомить если приходится раз за разом перекомпилировать проект. В данной статье мы рассмотрим как можно упростить этот момент в разработке.
Установка modd
Для решения нашей задачи необходимо установить пакет modd. Для этого в терминале введем команду:
go install github.com/cortesi/modd/cmd/modd@latest
Данный пакет будет скачен в каталог ~/golang/packages/bin, который мы настроили в прошлой статье.
Настройка modd
В корне проекта создадим файл 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
Чтобы запустить режим слежения за изменением файлов, достаточно ввести в терминале команду:
modd
Иногда могут возникнуть случаи при которых вы будете ожидать перекомпиляцию, но она не произойдет. Например, при какой-либо серьезной ошибки в программе. Чтобы решить этот нюанс, необходимо отменить слежение за изменение файлов, нажав в терминале горячие клавиши Ctrl + C и по новой выполнить команду modd.
Подведем итоги
В этой статье мы научились пользоваться довольно полезным инструментом modd, который позволяет автоматизировать рутину компиляции программы при разработке.