Bahasa Inggris | 简体中文 | 繁體中文
Ketika saya mulai mengembangkan situs web di Go dan menggunakan kerangka gin, sayang sekali gin tidak memiliki fungsi pemuatan ulang langsung. Jadi saya mencari-cari dan mencoba yang baru, sepertinya tidak terlalu fleksibel, jadi saya bermaksud menulis ulang dengan lebih baik. Akhirnya, Air lahir. Selain itu, terima kasih banyak kepada pilu, tidak segar, tidak ada udara :)
Air adalah satu lagi utilitas baris perintah yang memuat ulang langsung untuk mengembangkan aplikasi Go. Jalankan air
di direktori root proyek Anda, biarkan saja, dan fokus pada kode Anda.
Catatan: Alat ini tidak ada hubungannya dengan penerapan panas untuk produksi.
Mendukung bidang konfigurasi udara sebagai argumen:
Jika Anda ingin mengonfigurasi perintah build dan menjalankan perintah, Anda dapat menggunakan perintah berikut tanpa file konfigurasi:
air --build.cmd " go build -o bin/api cmd/run.go " --build.bin " ./bin/api "
Gunakan koma untuk memisahkan item untuk argumen yang menggunakan daftar sebagai masukan:
air --build.cmd " go build -o bin/api cmd/run.go " --build.bin " ./bin/api " --build.exclude_dir " templates,build "
go install
(Disarankan)Dengan versi 1.23 atau lebih tinggi:
go install github.com/air-verse/air@latest
# binary will be $(go env GOPATH)/bin/air
curl -sSfL https://raw.githubusercontent.com/air-verse/air/master/install.sh | sh -s -- -b $( go env GOPATH ) /bin
# or install it into ./bin/
curl -sSfL https://raw.githubusercontent.com/air-verse/air/master/install.sh | sh -s
air -v
# binary will be /usr/local/bin/air
curl -sSfL https://goblin.run/github.com/air-verse/air | sh
# to put to a custom path
curl -sSfL https://goblin.run/github.com/air-verse/air | PREFIX=/tmp sh
Silakan tarik image Docker ini cosmtrek/air.
docker/podman run -it --rm
-w " <PROJECT> "
-e " air_wd=<PROJECT> "
-v $( pwd ) : < PROJECT >
-p < PORT > : < APP SERVER PORT >
cosmtrek/air
-c < CONF >
jika Anda ingin menggunakan udara terus menerus seperti aplikasi biasa, Anda dapat membuat fungsi di ${SHELL}rc Anda (Bash, Zsh, dll…)
air () {
podman/docker run -it --rm
-w " $PWD " -v " $PWD " : " $PWD "
-p " $AIR_PORT " : " $AIR_PORT "
docker.io/cosmtrek/air " $@ "
}
<PROJECT>
adalah jalur proyek Anda dalam container, misal: /go/example jika ingin masuk ke container, Silakan tambahkan --entrypoint=bash.
Salah satu proyek saya berjalan di Docker:
docker run -it --rm
-w " /go/src/github.com/cosmtrek/hub "
-v $( pwd ) :/go/src/github.com/cosmtrek/hub
-p 9090:9090
cosmtrek/air
Contoh lain:
cd /go/src/github.com/cosmtrek/hub
AIR_PORT=8080 air -c " config.toml "
ini akan menggantikan $PWD
dengan direktori saat ini, $AIR_PORT
adalah port tempat mempublikasikan dan $@
menerima argumen dari aplikasi itu sendiri misalnya -c
Untuk mengurangi pengetikan, Anda dapat menambahkan alias air='~/.air'
ke .bashrc
atau .zshrc
.
Pertama masuk ke proyek Anda
cd /path/to/your_project
Penggunaan paling sederhana dijalankan
# firstly find `.air.toml` in current directory, if not found, use defaults
air -c .air.toml
Anda dapat menginisialisasi file konfigurasi .air.toml
ke direktori saat ini dengan pengaturan default dengan menjalankan perintah berikut.
air init
Setelah ini, Anda tinggal menjalankan perintah air
tanpa argumen tambahan, dan itu akan menggunakan file .air.toml
untuk konfigurasi.
air
Untuk mengubah konfigurasi, lihat file air_example.toml.
Anda dapat memberikan argumen untuk menjalankan biner yang dibangun dengan menambahkannya setelah perintah udara.
# Will run ./tmp/main bench
air bench
# Will run ./tmp/main server --port 8080
air server --port 8080
Anda dapat memisahkan argumen yang diteruskan untuk perintah udara dan biner yang dibangun dengan argumen --
.
# Will run ./tmp/main -h
air -- -h
# Will run air with custom config and pass -h argument to the built binary
air -c .air.toml -- -h
services :
my-project-with-air :
image : cosmtrek/air
# working_dir value has to be the same of mapped volume
working_dir : /project-package
ports :
- <any>:<any>
environment :
- ENV_A=${ENV_A}
- ENV_B=${ENV_B}
- ENV_C=${ENV_C}
volumes :
- ./project-relative-path/:/project-package/
air -d
mencetak semua log.
Dockerfile
# Choose whatever you want, version >= 1.16
FROM golang:1.23-alpine
WORKDIR /app
RUN go install github.com/air-verse/air@latest
COPY go.mod go.sum ./
RUN go mod download
CMD [ "air" , "-c" , ".air.toml" ]
docker-compose.yaml
version : " 3.8 "
services :
web :
build :
context : .
# Correct the path to your Dockerfile
dockerfile : Dockerfile
ports :
- 8080:3000
# Important to bind/mount your codebase dir to /app dir for live reload
volumes :
- ./:/app
export GOPATH= $HOME /xxxxx
export PATH= $PATH : $GOROOT /bin: $GOPATH /bin
export PATH= $PATH : $( go env GOPATH ) /bin # Confirm this line in your .profile and make sure to source the .profile if you add it!!!
Harus menggunakan untuk keluar dari `' di tempat sampah. masalah terkait: #305
#365
[ build ]
cmd = " /usr/bin/true "
Lihat edisi #512 untuk rincian tambahan.
include_dir
, include_ext
, atau include_file
.</body>
[ proxy ]
enabled = true
proxy_port = < air proxy port>
app_port = < your server port>
Harap dicatat bahwa ini memerlukan Go 1.16+ karena saya menggunakan go mod
untuk mengelola dependensi.
# Fork this project
# Clone it
mkdir -p $GOPATH /src/github.com/cosmtrek
cd $GOPATH /src/github.com/cosmtrek
git clone [email protected]: < YOUR USERNAME > /air.git
# Install dependencies
cd air
make ci
# Explore it and happy hacking!
make install
Permintaan tarik dipersilakan.
# Checkout to master
git checkout master
# Add the version that needs to be released
git tag v1.xx.x
# Push to remote
git push origin v1.xx.x
# The CI will process and release a new version. Wait about 5 min, and you can fetch the latest version
Ucapkan terima kasih yang sebesar-besarnya kepada banyak pendukung. Aku selalu mengingat kebaikanmu.
Lisensi Publik Umum GNU v3.0