บทที่ 1: การแนะนำ Live Reloading

คืออะไรบ้าง?

Live reloading คือคุณสมบัติที่ทำให้สภาพแวดล้อมการพัฒนาของคุณมีความสามารถในการตรวจสอบการเปลี่ยนแปลงในโค้ดของคุณและโหลดแอปพลิเคชันของคุณโดยอัตโนมัติ เมื่อคุณบันทึกไฟล์ Live reload จะตรวจจับการเปลี่ยนแปลง สร้างแอปพลิเคชันใหม่ และทำการเริ่มต้นใหม่ ซึ่งช่วยประหยัดเวลาในการหยุดเซิร์ฟเวอร์ สร้างแอปพลิเคชันใหม่ และเริ่มต้นใหม่หลังจากการเปลี่ยนแปลงทุกครั้ง

ประโยชน์ของ Live Reloading สำหรับการพัฒนา Go

การแฮ็กหรือการบังคับข้อมูลช่วยให้การพัฒนาเร็วขึ้นอย่างมีนัยสำคัญ สำหรับนักพัฒนา Go ที่ใช้ในการคอมไพล์โค้ดก่อนที่จะทำการรัน การ Live Reloading หมายความว่ามีการดำเนินการทำงานที่ดีขึ้นและได้รับข้อเสนอซึ่งมีการฝ่ายเชียร์ ประโยชน์ได้แก่:

  1. เพิ่มผลิตภัณฑ์: นักพัฒนาสามารถที่จะอยู่ในเซล โดยไม่ต้องมีการหยุดโดยการสร้างใหม่
  2. ประหยัดเวลา: Live reloading ลดเวลาที่จำเป็นในการเห็นการเปลี่ยนแปลงของโค้ดที่แสดงในแอปพลิเคชันที่ทำงาน
  3. การตรวจจับข้อผิดพลาด: การแสดงข้อมูลหลังสร้างขึ้นและการรีสตาร์ทช่วยให้นักพัฒนาตรวจตรวจและแก้ไขข้อผิดพลาดได้เร็วขึ้น
  4. เรื่อยแรงขึ้นการทำงาน: ผสมแทรกและทำให้เกิดสายงานที่เรียบง่ายและมีประสิทธิภาพ

บทที่ 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 ไบนารีไฟล์ที่เกิดขึ้น