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