Оценок пока нет Live Reload — оперативная перезагрузка проекта на Go

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

Пожалуйста, оцените материал

WebSofter

Web - технологии