Live Reload — одна из основных функций при разработке приложения, позволяющий быстро отслеживать изменения без надобности в ручную перезагружать проект, чтобы новые изменения ступили в силу.
Golang не имеет в своей базовой инструментарии данный режим, но мы можем настроить этов нашем проекте, сипользуя сторонний модуль air.
Для начала нам надо убдет устанвоить данный модуль в наш проект
go install github.com/cosmtrek/air@latest
Теперь в проекте будет доступна новые команды через ключевое слово air
. Далее необходимо инициализировать проект на запуск через air
и для этого запускаем команду
air init
которая создаст в корне новый файл конфигурации .air.toml
, который содержит спечифические настройки данного модуля
root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"
[build]
args_bin = []
bin = "./tmp/main"
cmd = "go build -o ./tmp/main ."
delay = 1000
exclude_dir = ["assets", "tmp", "vendor", "testdata"]
exclude_file = []
exclude_regex = ["_test.go"]
exclude_unchanged = false
follow_symlink = false
full_bin = ""
include_dir = []
include_ext = ["go", "tpl", "tmpl", "html"]
include_file = []
kill_delay = "0s"
log = "build-errors.log"
poll = false
poll_interval = 0
post_cmd = []
pre_cmd = []
rerun = false
rerun_delay = 500
send_interrupt = false
stop_on_error = false
[color]
app = ""
build = "yellow"
main = "magenta"
runner = "green"
watcher = "cyan"
[log]
main_only = false
time = false
[misc]
clean_on_exit = false
[screen]
clear_on_rebuild = false
keep_scroll = true
Если у нас в проекте все стандарно и запускается через файл main.go
, который находится в корне проекта, то можно ничего не менять. Но если у вас в проекте main.go
находится, допустим, в папке server/main.go
, то надо будет указать это для параметра cmd
cmd = "go build -o ./tmp/main ./server/main.go"
После того, как все настроено нам остается запустить проект в режиме Live Reload через простую одиночную команду
air