Berkenalan dengan Air: Live Reload untuk Aplikasi Go

Alit Indrawan
3 min readJul 16, 2023

--

https://github.com/cosmtrek/air/blob/master/docs/air.png

Bagi para Developer yang pernah membangun aplikasi web menggunakan bahasa pemrograman Go, pasti merasakan ribetnya harus melakukan build ulang (go run) setiap kali melakukan perubahan pada code. Hal ini juga dirasakan oleh Developer yang menggunakan Node Js, namun di Node Js terdapat Nodemon yang mampu melakukan live reload setiap kali perubahan code terjadi. Lalu bagaimana dengan Go ? berita baiknya adalah ada solusi yang mirip dengan Nodemon untuk membantu mereka mengatasi masalah tersebut. Solusinya adalah menggunakan Air. Air adalah library yang dirancang khusus untuk pengembangan aplikasi Go dan menyediakan fungsi live reload yang sangat berguna.

Apa itu Air?
Air adalah library yang dirancang khusus untuk pengembangan aplikasi Go dan menyediakan fungsi live reload yang sangat berguna. Air dibuat oleh Rick Yu di repository nya https://github.com/cosmtrek/air. Air rilis pertama kali dengan versi 1.0.2 pada 14 Mei 2018 dan hingga artikel ini dibuat sudah rilis versi 1.44.0 dengan lebih dari 10 ribu star di github. Beberapa fitur dari Air :
- Log output yang berwarna
- Custom build atau command apa pun
- Dukungan untuk excluding subdirektori terterntu
- Dapat memantau penambahan direktori baru setelah Air dimulai
- Proses build yang lebih baik

Instalasi dan penggunaan Air
Untuk instalasi Air dapat dengan menjalankan perintah berikut:

go install github.com/cosmtrek/air@latest

Untuk memastikan Air sudah terinstal dengan baik, jalankan perintah berikut:

air -v

Untuk menggunakan Air, dapat dengan menjalankan perintah berikut di terminal direktori aplikasi Go:

air init

Command air initakan membuat file baru .air.toml yang secara default akan berisi script seperti berikut:

root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"

[build]
args_bin = []
bin = "./tmp/main"
cmd = "go build -o ./tmp/main ."
delay = 0
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
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

Apabila main function aplikasi Go ada di root direktori, maka Air dapat langsung digunakan dan dijalankan dengan command berikut:

air

Namun jika main function tidak berada di root direktori misalnya di folder cmd dengan nama server.go, maka perlu perubahan di file .air.toml dengan mengubah bagian cmd menjadi sebagai berikut :

cmd = "go build -o ./tmp/main ./cmd/server.go"

Setelah Air berjalan, setiap perubahan terdeteksi pada aplikasi Go maka server akan memuat ulang secara otomatis untuk menampilkan perubahan.

Kesimpulan
Air tentu akan sangat membantu para Developer agar dapat melakukan build secara otomatis setiap kali ada perubahan pada code di aplikasi Go. Di artikel ini hanya membahas dasar penggunaan Air. Untuk mempelajari lebih banyak lagi fitur dari Air dapat mengunjungi langsung github dari Air disini.

Sumber

--

--