Bab 1: Pengenalan Live Reloading
Apa itu Live Reloading?
Live reloading adalah fitur yang memungkinkan lingkungan pengembangan Anda untuk memantau perubahan dalam kode Anda dan secara otomatis me-reload aplikasi Anda. Ketika Anda menyimpan sebuah file, alat live reload mendeteksi perubahan, membangun ulang aplikasi, dan me-restart-nya. Ini menghemat Anda dari proses manual menghentikan server, membangun ulang aplikasi, dan memulainya kembali setelah setiap perubahan.
Manfaat Live Reloading untuk Pengembangan Go
Live reloading dapat signifikan meningkatkan proses pengembangan. Bagi pengembang Go, yang biasanya harus mengkompilasi kode mereka sebelum menjalankannya, live reloading berarti alur kerja yang lebih baik dengan umpan balik yang langsung. Manfaatnya meliputi:
- Meningkatkan Produktivitas: Pengembang dapat tetap fokus tanpa gangguan, karena mereka tidak perlu melakukan pembangunan ulang manual.
- Menghemat Waktu: Live reloading mengurangi waktu putar untuk melihat perubahan kode yang tercermin dalam aplikasi yang sedang berjalan.
- Deteksi Kesalahan: Pembangunan ulang dan restart instan memungkinkan pengembang untuk mendeteksi dan memperbaiki kesalahan lebih cepat.
- Alur Kerja yang Tersusun: Terintegrasi dengan lancar ke dalam proses pengembangan, membuatnya lebih lancar dan efisien.
Bab 2: Apa itu Air?
Air adalah utilitas baris perintah yang dirancang untuk memberikan kemampuan live reloading untuk aplikasi Go. Ini memantau perubahan dalam kode sumber Anda dan secara otomatis membangun ulang dan me-restart aplikasi Go Anda. Ini berarti Anda dapat lebih fokus pada pengembangan fitur dan kurang pada tugas-tugas pengulangan.
Fitur
Air menyediakan beragam fitur yang cocok untuk lingkungan pengembangan Go modern:
- Pembangunan Ulang Otomatis: Mendeteksi perubahan file dan memicu pembangunan ulang.
- Perintah Pembangunan yang Dapat Disesuaikan: Memungkinkan Anda menyesuaikan perintah yang digunakan untuk membangun sesuai dengan kebutuhan proyek Anda.
- Pengecualian Direktori: Memungkinkan Anda untuk menentukan direktori yang dikecualikan dari pemantauan.
- Dukungan untuk Direktori Baru: Dapat memantau direktori baru yang ditambahkan setelah Air dijalankan.
- Log yang Berwarna dan Mudah Dibaca: Meningkatkan kemudahan baca log output dengan penandaan warna.
- Argumen CLI: Bidang konfigurasi dapat diatur langsung melalui argumen baris perintah untuk penyesuaian cepat.
Lihat konteks yang diberikan oleh pengembang untuk daftar lengkap fitur dan fungsionalitas yang tersedia dengan Air.
Bab 3: Memasang air
3.1 Pemasangan via go install
Untuk memasang Air menggunakan Go toolchain versi 1.18 atau lebih tinggi:
go install github.com/cosmtrek/air@latest
Ini akan membuat air
tersedia di GOPATH/bin
Anda.
3.2 Menggunakan Skrip install.sh
Metode lainnya adalah melalui skrip pemasangan yang disediakan:
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
Setelah dipasang, verifikasikan dengan menjalankan:
air -v
3.3 Pemasangan Khusus (Docker/Podman dan PATH Kustom)
Bagi yang menggunakan Docker atau Podman, terdapat cara yang lebih terpadu untuk menyertakan Air:
docker run -it --rm \
-w "/path/to/project" \
-v $(pwd):/path/to/project \
-p port:port \
cosmtrek/air
Ganti /path/to/project
dengan jalur proyek Anda dan port:port
dengan pemetaan port yang diinginkan.
Atau, untuk pemasangan PATH khusus:
curl -sSfL https://goblin.run/github.com/cosmtrek/air | PREFIX=/custom/path sh
Bab 4: Mengkonfigurasi air
untuk Proyek Go Anda
4.1 Memahami Konfigurasi .air.toml
.air.toml
adalah file konfigurasi untuk Air. Ini memungkinkan Anda untuk menentukan pengaturan terkait proses pembangunan, pemantauan direktori, dan output log. Berikut adalah gambaran singkat dari bagian-bagian kunci:
-
root
: Menetapkan direktori kerja untuk Air. -
build
: Berisi pengaturan terkait pembangunan seperti perintah yang dijalankan sebelum/setelah membangun, dan perintah membangun utama. -
tmp_dir
: Direktori tempat file pembangunan sementara disimpan. -
log
: Mengkonfigurasi pengaturan file log. -
color
: Menyesuaikan warna dari setiap bagian output log.
4.2 Menghasilkan dan Memodifikasi Berkas Konfigurasi
Untuk menghasilkan berkas konfigurasi default .air.toml
, jalankan:
air init
Ini akan membuat berkas .air.toml
dengan pengaturan default di direktori saat ini. Anda kemudian dapat memodifikasinya untuk sesuaikan dengan kebutuhan proyek Anda. Sebagai referensi, Anda dapat melihat air_example.toml
yang disediakan dalam konteks.
4.3 Menimpa Konfigurasi dengan Argumen CLI
Untuk pengujian cepat atau perubahan kecil, Anda dapat menimpa konfigurasi dalam .air.toml
dengan melewatkan argumen CLI. Sebagai contoh:
air --build.cmd "go build -o myapp" --build.bin "./myapp"
Fleksibilitas ini memungkinkan Anda untuk dengan mudah menyesuaikan perilaku Air tanpa mengubah berkas konfigurasi.
Bab 5: Menjalankan air
di Lingkungan Pengembangan Anda
5.1 Memulai air
di Proyek Anda
Untuk memulai dengan air
dalam proyek Anda, navigasikan ke direktori root proyek Anda dalam terminal dan jalankan perintah air
. Jika berkas konfigurasi .air.toml
ada, air
akan secara otomatis menggunakannya. Jika tidak, akan menggunakan pengaturan default.
cd /path/ke/proyek_anda
air
Tips: Jika Anda mengalami masalah izin dengan executable air
, pastikan bahwa ia memiliki izin eksekusi yang diperlukan (chmod +x $(go env GOPATH)/bin/air
).
5.2 Menyesuaikan Perintah Build dan Run dengan air
Anda dapat menyesuaikan perintah build dan run yang digunakan oleh air
dengan memodifikasi berkas konfigurasi .air.toml
, khususnya di bagian [build]
. Sebagai contoh, untuk mengubah perintah build dan menentukan berkas biner yang berbeda:
[build]
cmd = "go build -o ./tmp/my-custom-binary ."
bin = "tmp/my-custom-binary"
Untuk kebutuhan build yang lebih kompleks, array pre_cmd
dan post_cmd
dalam berkas konfigurasi memungkinkan Anda untuk menjalankan perintah sebelum dan setelah proses build, masing-masing.
5.3 Mengesampingkan Direktori dan Memantau Perubahan
air
juga memungkinkan Anda untuk mengesampingkan direktori dari pemantauan perubahan, yang berguna untuk direktori yang berisi aset atau dependensi yang tidak perlu memicu pembangunan ulang.
Untuk mengkonfigurasi ini, perbarui bidang exclude_dir
di .air.toml
:
[build]
exclude_dir = ["assets", "tmp", "vendor", "node_modules"]
Anda juga dapat memerintahkan air
untuk memasukkan direktori tambahan dengan include_dir
, atau memantau ekstensi berkas tertentu dengan include_ext
.
Bab 6: Penggunaan Lanjutan
6.1 Menyiapkan air
dengan Kontainer Docker
Menggunakan air
dalam kontainer Docker dapat menyederhanakan pengaturan pengembangan Anda, terutama saat bekerja dengan tim. Untuk menyertakan air
dalam lingkungan Docker Anda, perbarui Dockerfile
Anda untuk menginstal air
dan menyalin .air.toml
Anda ke dalam kontainer:
FROM golang:1.18-alpine AS builder
RUN go install github.com/cosmtrek/air@latest
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
CMD ["air", "-c", ".air.toml"]
6.3 Menggunakan air
dalam Lingkungan Docker-compose
Untuk mengintegrasikan air
ke dalam layanan yang dikelola oleh docker-compose
, tentukan layanan dalam berkas docker-compose.yaml
Anda:
version: '3.8'
services:
app:
build: .
ports:
- "808:808"
volumes:
- .:/app
command: ["air", "-c", ".air.toml"]
Pastikan bahwa direktif volumes
secara benar memetakan direktori proyek Anda ke direktori kerja dalam kontainer agar air
dapat mendeteksi perubahan berkas.
Bab 7: Troubleshooting Umum dan FAQ
7.1 Memperbaiki Kesalahan command not found: air
Jika Anda mengalami kesalahan command not found: air
, biasanya itu berarti bahwa binary air
tidak ada di PATH
sistem Anda. Untuk mengatasi ini, tambahkan jalur biner Go ke variabel lingkungan PATH
Anda:
export PATH=$PATH:$(go env GOPATH)/bin
7.2 Masalah dalam Lingkungan WSL
Dalam lingkungan Windows Subsystem for Linux (WSL), pastikan bahwa Anda mengeksploitasi karakter-karakter khusus dalam file .air.toml
. Sebagai contoh, gunakan \\
untuk menghindari backslash dalam jalur file.
7.3 Tips Kompilasi Cepat Tanpa Menjalankan Berkas Binari
Jika Anda ingin air
mengkompilasi aplikasi Go Anda tanpa menjalankannya, atur cmd
di bagian [build]
dari file .air.toml
Anda ke perintah tanpa operasi (seperti /bin/true
pada sistem berbasis Unix):
[build]
cmd = "/bin/true"
Dengan melakukan ini, air
masih akan mengamati perubahan file dan memicu proses kompilasi, tetapi tidak akan mencoba menjalankan berkas biner yang dihasilkan.