บทที่ 1: การแนะนำ Live Reloading
คืออะไรบ้าง?
Live reloading คือคุณสมบัติที่ทำให้สภาพแวดล้อมการพัฒนาของคุณมีความสามารถในการตรวจสอบการเปลี่ยนแปลงในโค้ดของคุณและโหลดแอปพลิเคชันของคุณโดยอัตโนมัติ เมื่อคุณบันทึกไฟล์ Live reload จะตรวจจับการเปลี่ยนแปลง สร้างแอปพลิเคชันใหม่ และทำการเริ่มต้นใหม่ ซึ่งช่วยประหยัดเวลาในการหยุดเซิร์ฟเวอร์ สร้างแอปพลิเคชันใหม่ และเริ่มต้นใหม่หลังจากการเปลี่ยนแปลงทุกครั้ง
ประโยชน์ของ Live Reloading สำหรับการพัฒนา Go
การแฮ็กหรือการบังคับข้อมูลช่วยให้การพัฒนาเร็วขึ้นอย่างมีนัยสำคัญ สำหรับนักพัฒนา Go ที่ใช้ในการคอมไพล์โค้ดก่อนที่จะทำการรัน การ Live Reloading หมายความว่ามีการดำเนินการทำงานที่ดีขึ้นและได้รับข้อเสนอซึ่งมีการฝ่ายเชียร์ ประโยชน์ได้แก่:
- เพิ่มผลิตภัณฑ์: นักพัฒนาสามารถที่จะอยู่ในเซล โดยไม่ต้องมีการหยุดโดยการสร้างใหม่
- ประหยัดเวลา: Live reloading ลดเวลาที่จำเป็นในการเห็นการเปลี่ยนแปลงของโค้ดที่แสดงในแอปพลิเคชันที่ทำงาน
- การตรวจจับข้อผิดพลาด: การแสดงข้อมูลหลังสร้างขึ้นและการรีสตาร์ทช่วยให้นักพัฒนาตรวจตรวจและแก้ไขข้อผิดพลาดได้เร็วขึ้น
- เรื่อยแรงขึ้นการทำงาน: ผสมแทรกและทำให้เกิดสายงานที่เรียบง่ายและมีประสิทธิภาพ
บทที่ 2: คือ 'Air'?
Air คือ utility สำหรับ command-line ที่ถูกออกแบบมาเพื่อให้คุณสมบัติการโหลดเรียลไทม์สำหรับโปรแกรม Go มันตรวจจับการเปลี่ยนแปลงในโค้ดของคุณอัตโนมัติ และสร้างใหม่ และทำการรีสตาร์ทใหม่ของโปรแกรม Go ของคุณ ซึ่งหมายความว่าคุณสามารถมุ่งเน้นการพัฒนาคุณลักษณะเพิ่มเติมและน้อยลงในงานที่เป็นซ้ำ ๆ
คุณสมบัติ
Air ให้คุณเลือกคุณสมบัติที่เหมาะสมสำหรับสภาพแวดล้อมการพัฒนา Go สมัครเล่มตัวหลาย - ๆ ที่กระชับ เช่น:
- การสร้างอัตโนมัติ: ตรวจจับการเปลี่ยนแปลงไฟล์และทำการสร้างอัตโนมัติ
- คำสั่งการสร้างที่กำหนดเอง: ช่วยให้คุณกำหนดคำสั่งการสร้างสำหรับความต้องการโปรเจคของคุณ
- การยกเว้นไดเร็กทอรี: ช่วยให้คุณระบุไดเร็กทอรีที่ต้องการไม่ให้ดู
- การสนับสนุนสำหรับไดเร็กทอรีใหม่: สามารถดูไดเร็กทอรีที่เพิ่มเข้าไปหลังจากที่ Air ได้เริ่มต้นไว้
- ดูประมาณ Warna พุท Lengkap: ดูประมาณความง่ายของการออกแบบที่มีคุณสมบัติสี
- อาร์กิวเมนต์สำหรับ ไว้เรื่องกล่องคำสั่ง: ฟิลด์การปรับกำหนดการทรัพย์สำหรับการปรับกำหนดคำสั่งไว้เรื่องกรอบโดยการให้ง่าย
อ้างถึงที่ For ที่ผู้พัฒนาจัดให้เป็นทั้งหมดสำหรับรายการคุณสมบัติและความสามาถสำหรับ Air.
บทที่ 3: การติดตั้ง 'air' สำหรับโปรเจค Go ของคุณ
3.1 การติดตั้งผ่าน go install
เพื่อที่จะติดตั้ง Air โดยใช้เครื่องมือ Go version 1.18 หรือสูงกว่า:
go install github.com/cosmtrek/air@latest
นี้จะทำให้ air
มีอยู่ใน GOPATH/bin
ของคุณ
3.2 การใช้สคริปต์ install.sh
วิธีการลักไซ์มาอีกทางหนึ่งคือทางสคริปต์การติดตัั้ง:
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
หลังจากที่ติดตั้งเรียบร้อยแล้ว ทำการยืนยันโดยการรัน:
air -v
3.3 การติดตั้งพิเศษ (Docker/Podman และเส้นทางที่ปรับแต่ง)
สำหรับบุคคลที่ใช้ Docker หรือ Podman มีวิธีที่สามารถสรุปการเอกฟิล์สำหรับรวมแอร์เอกฟิล์:
docker run -it --rm \
-w "/path/to/project" \
-v $(pwd):/path/to/project \
-p port:port \
cosmtrek/air
ทดแทน /พาท/ถึง/โปรเจค
ด้วยพาทที่โปรเจคของคุณและ port:port
ด้วยการับปากอินที่ต้องการจะแมป
แล้วก็ สำหรับเส้นทาง ไปที่เจือพรโพศ์ ทางที่พันฉีนะ:
curl -sSfL https://goblin.run/github.com/cosmtrek/air | PREFIX=/custom/path sh
บทที่ 4: การปรับเปลี่ยน air
สำหรับโปรเจค Go ของคุณ
4.1 ทำสำคัญ .air.toml
การปรับเปลี่ยน
.air.toml
คือไฟล์การปรับเปลี่ยนสำหรับ Air มันช่วยให้คุณระบุการตั้งที่เกี่ยวข้องกับกระบวนการสร้าง การดูไดเรกทอรี และผลลัพธ์ของโพสต์ นี่คือภีฎาาหัวโปรแกรมหลักของการสร้าง
-
รูท
: กำหนดว่าสถาณที่ทำงานสำหรับ Air -
สร้าง
: ประกอบด้วยการตั้งที่เกี่ยวข้องกับการสร้าง เช่น คำสั่งการทำงานก่อนหลังจากการสร้าง และคำสั่งการสร้างตัวหลัก -
tmp_dir
: ไดเรกทอรีที่ date ตู้ซื่อการสร้างชั่วคราว -
ล็อก
: ปรับกำหนดการทำงานของไฟล์ล็อก -
สี
: ปรับกำหนดสีของแต่คำที่ออกมา
4.2 สร้างและแก้ไขไฟล์ Configuration
เพื่อสร้างไฟล์ configuration .air.toml
ดีฟอลต์ ให้ใช้คำสั่ง:
air init
นี่จะสร้าง .air.toml
ดีฟอลต์ พร้อมการตั้งค่าดีฟอลต์ในไดเรกทอรี่ปัจจุบันของคุณ คุณสามารถแก้ไขเพื่อเข้ากันกับความต้องการของโปรเจกต์ของคุณ สำหรับการอ้างอิง คุณสามารถดูที่ไฟล์ air_example.toml
ที่ให้มาในบริบท.
4.3 การเขียนทับ Configuration ด้วยอาร์กิวเมนต์ CLI
สำหรับการทดสอบแบบด่วนหรือการเปลี่ยนแปลงเล็ก ๆ คุณสามารถเข้ากันกับการกำหนดค่าในไฟล์ .air.toml
โดยใช้อาร์กิวเมนต์ CLI ตัวอย่างเช่น:
air --build.cmd "go build -o myapp" --build.bin "./myapp"
ความยืดหยุ่นนี้ช่วยให้คุณปรับเปลี่ยนพฤติกรรมของ Air ได้อย่างง่าย ๆ โดยไม่ต้องเปลี่ยนแปลงไฟล์ configuration.
บทที่ 5: การรัน air
ในสภาพแวดล้อมการพัฒนาของคุณ
6.1 เริ่มต้น air
ในโปรเจกต์ของคุณ
เพื่อเริ่มต้นใช้ air
ในโปรเจกต์ของคุณ ให้ไปที่ไดเรกทอรี่หลักของโปรเจกต์ของคุณในทีอมีนอล และทำการรันคำสั่ง air
หากมีไฟล์ configuration .air.toml
อยู่ air
จะใช้งานโดยอัตโนมัติ หากไม่มี air
จะใช้การตั้งค่าดีฟอลต์
cd /path/to/your_project
air
เคล็ดลับ: หากคุณพบปัญหาเกี่ยวกับสิทธิ์ของไฟล์ที่เรียกใช้ คุณควรตรวจสอบว่ามันมีสิทธิ์การเรียกใช้ที่จำเป็นอย่างพอ (chmod +x $(go env GOPATH)/bin/air
).
6.2 ปรับแต่งคำสั่ง Build และ Run ด้วย air
คุณสามารถปรับแต่งคำสั่ง build และ run ที่ใช้โดย air
โดยการแก้ไขไฟล์ configuration .air.toml
โดยเฉพาะภายใต้ส่วน [build]
เช่น เพื่อเปลี่ยนคำสั่ง build และระบุไฟล์ไบนารีที่แตกต่าง:
[build]
cmd = "go build -o ./tmp/my-custom-binary ."
bin = "tmp/my-custom-binary"
สำหรับความต้องการในการ build ที่ซับซ้อนมากขึ้น อาร์เรย์ pre_cmd
และ post_cmd
ในไฟล์ configuration อนุญาตให้คุณทำการ execute คำสั่งก่อนและหลังกระบวนการ build ตามลำดับ
เคล็ดลับ: ตัวอย่างการตั้งค่า air ที่สมบูรณ์
6.3 การยกเว้นไดเรกทอรี่และการตรวจสอบการเปลี่ยนแปลง
air
ยังช่วยให้คุณสามารถยกเว้นไดเรกทอรี่ที่ไม่ต้องการให้เกิดการตรวจสอบความเปลี่ยนแปลง ซึ่งมีประโยชน์สำหรับไดเรกทอรี่ที่มีทรัพยากรหรือขึ้นต่อกับทรัพยากรที่ไม่จำเป็นต้องทำให้เกิดการสร้างใหม่
เพื่อตั้งค่านี้ อัปเดทฟิลด์ exclude_dir
ใน .air.toml
:
[build]
exclude_dir = ["assets", "tmp", "vendor", "node_modules"]
คุณยังสามารถสั่งให้ air
รวมไดเรกทอรี่เพิ่มเติมโดยใช้ include_dir
หรือตรวจสอบสำหรับส่วนขยายไฟล์ที่เฉพาะ โดยใช้ include_ext
บทที่ 6: การใช้งานขั้นสูง
6.1 ตั้งค่า air
กับคอนเทนเนอร์ Docker
การใช้ air
ภายในคอนเทนเนอร์ Docker สามารถทำให้การตั้งค่าพัฒนาของคุณเปลี่ยนแปลงได้ โดยเฉพาะเมื่ลอยู่ในทีม สำหรับการรวม air
เข้ากับคอนเทนเนอร์ของคุณ คุณสามารถอัปเดท Dockerfile
เพื่อติดตั้ง air
และคัดลอก .air.toml
ของคุณเข้าไปในคอนเทนเนอร์:
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 การใช้ air
ในสภาพแวดล้อมด้วย Docker-compose
เพื่อรวม air
เข้าไปในบริการที่ควบคุมโดย docker-compose
นิยามบริการในไฟล์ docker-compose.yaml
ของคุณ:
version: '3.8'
services:
app:
build: .
ports:
- "808:808"
volumes:
- .:/app
command: ["air", "-c", ".air.toml"]
ตรวจสอบให้แน่ใจว่าคำสั่ง volumes
ทำการเชื่อมต่อไดเรกทอรี่ของโปรเจกต์ของคุณไปยังไดเรกทอรี่ทำงานภายในคอนเทนเนอร์อย่างถูกต้อง เพื่อให้ air
สามารถตรวจสอบการเปลี่ยนแปลงของไฟล์ได้
บทที่ 7: กำจัดปัญหาที่พบบ่อยและคำถามที่พบบ่อย
7.1 การแก้ไขข้อผิดพลาด command not found: air
หากคุณพบข้อผิดพลาด command not found: air
มันตราบที่บ่อยครั้งคือ air
บายนารีไม่ได้อยู่ใน PATH
ของระบบของคุณ หากคุณต้องการแก้ไขปัญหานี้ คุณควรที่จะเพิ่มทางเดินไปยังไบนารีของ Go ในตัวแปรสภาพแวดล้อม PATH
:
export PATH=$PATH:$(go env GOPATH)/bin
7.2 ปัญหาในระบบ WSL
ในระบบ Windows Subsystem for Linux (WSL) โปรดระวังการใช้เครื่องหมายพิเศษในไฟล์ .air.toml
ให้ใช้ \\
เพื่อหลีกเลี่ยง backslashes ในเส้นทางของไฟล์
7.3 เคล็ดลับเกี่ยวกับคอมไพล์หรือ Build โดยไม่รันไบนารี
หากต้องการให้ air
คอมไพล์แอปพลิเคชัน Go โดยไม่รัน โปรดตั้งค่า cmd
ในส่วน [build]
ของไฟล์ .air.toml
เป็นคำสั่ง no-operation (เช่น /bin/true
บนระบบที่ใช้ Unix):
[build]
cmd = "/bin/true"
โดยทำเช่นนี้ air
จะยังคงสังเกตการเปลี่ยนแปลงของไฟล์และเรียกใช้กระบวนการคอมไพล์ แต่จะไม่พยายามที่จะ execute ไบนารีไฟล์ที่เกิดขึ้น