build.zig.zon และตัวจัดการแพ็กเกจ
ประกาศสิ่งที่ต้องพึ่งพาในไฟล์แสดงรายการ
build.zig.zon และตัวจัดการแพ็กเกจ เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
ไฟล์รายการสำหรับแพ็กเกจ
ถัดจาก build.zig จะมี build.zig.zon ซึ่งเป็นไฟล์รายการที่ระบุชื่อแพ็กเกจและรายการสิ่งที่แพ็กเกจพึ่งพา 📜
ZON คือสัญกรณ์ออบเจกต์ของ Zig
ไฟล์นี้เขียนด้วย ZON ซึ่งมีลักษณะเหมือนลิเทอรัลโครงสร้างข้อมูลนิรนามของ Zig ชื่อฟิลด์ที่มีจุดคั่นจะจับคู่กับค่าของ Zig ทั่วไป
.{
.name = .myapp,
.version = "0.1.0",
}ชื่อและเวอร์ชัน
ฟิลด์ที่จำเป็นสองรายการคือ name ซึ่งระบุแพ็กเกจ และเวอร์ชันที่ใช้รูปแบบการกำหนดเวอร์ชันเชิงความหมาย เช่น 1.2.0
.name = .myapp,
.version = "0.1.0",แสดงรายการสิ่งที่พึ่งพา
ฟิลด์ dependencies เป็นโครงสร้างข้อมูลของรายการต่าง ๆ โดยมีหนึ่งรายการต่อหนึ่งแพ็กเกจภายนอกที่คุณต้องการนำเข้าสู่การสร้าง
.dependencies = .{
.mylib = .{},
},URL ชี้ไปยังซอร์สโค้ด
สิ่งที่พึ่งพาแต่ละรายการระบุ url ไปยังไฟล์ tarball ซึ่งโดยทั่วไปเป็นคลังเก็บที่ติดแท็กไว้บนบริการโฮสต์โค้ด จากนั้น Zig จะดาวน์โหลดและแตกไฟล์ให้คุณ
.url = "https://example.com/mylib-1.0.0.tar.gz",แฮชจะล็อกข้อมูลไว้
ฟิลด์ hash จะระบุไบต์ที่แน่นอนของไฟล์ดาวน์โหลดนั้น หากเนื้อหาเปลี่ยนแปลง แฮชจะไม่ตรงกันและการสร้างจะปฏิเสธไฟล์ดังกล่าว
.hash = "122012ab...",ให้ zig fetch เติมข้อมูลให้
โดยทั่วไปคุณไม่ต้องพิมพ์แฮชด้วยตนเอง เรียกใช้ zig fetch พร้อม url แล้วคำสั่งจะดาวน์โหลด คำนวณแฮช และเขียนรายการให้คุณ
zig fetch --save https://example.com/mylib-1.0.0.tar.gzแคชส่วนกลาง
แพ็กเกจที่ดาวน์โหลดจะถูกเก็บไว้ในแคชที่ใช้ร่วมกันบนเครื่องของคุณ หลายโครงการจึงใช้สำเนาเดียวกันและไม่เก็บสิ่งที่พึ่งพาเดียวกันซ้ำ
paths ระบุสิ่งที่จะจัดส่ง
ฟิลด์ paths จะแสดงรายการไฟล์ที่รวมอยู่เมื่อแพ็กเกจของคุณถูกใช้เป็นสิ่งที่พึ่งพาเอง ใช้ .{""} เพื่อจัดส่งทุกอย่างในโฟลเดอร์
.paths = .{ "build.zig", "src" },ส่งไฟล์รายการเข้าคลัง
เนื่องจากมีแฮชที่แน่นอน build.zig.zon จึงทำให้การสร้างทำซ้ำได้เหมือนเดิม ส่งไฟล์นี้เข้าคลังเพื่อให้สมาชิกทีมทุกคนดาวน์โหลดโค้ดเดียวกันทุกประการ
build.zig อ่านไฟล์นี้
ไฟล์รายการทำงานคู่กับ build.zig ซึ่งเปลี่ยนสิ่งที่พึ่งพาแต่ละรายการให้เป็นโมดูลที่ใช้งานได้ ไฟล์ .zon ใช้บรรยาย ส่วนสคริปต์การสร้างใช้เชื่อมต่อ
const dep = b.dependency("mylib", .{});ตรวจสอบอย่างรวดเร็ว
ทบทวนว่าอะไรรับประกันว่าไฟล์ดาวน์โหลดของสิ่งที่พึ่งพาไม่ถูกแก้ไข
สรุปทบทวน
คุณได้รู้จัก build.zig.zon ซึ่งเป็นไฟล์รายการ ZON ที่มีชื่อ เวอร์ชัน และสิ่งที่พึ่งพา โดยแต่ละรายการมี url และ hash ที่ zig fetch สามารถเติมให้ได้ 🎯
คำถามที่พบบ่อย
บทเรียน “build.zig.zon และตัวจัดการแพ็กเกจ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “build.zig.zon และตัวจัดการแพ็กเกจ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “build.zig.zon และตัวจัดการแพ็กเกจ”
ประกาศสิ่งที่ต้องพึ่งพาในไฟล์แสดงรายการ คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “build.zig.zon และตัวจัดการแพ็กเกจ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- นำเข้าไฟล์ด้วย @import
- การจัดโครงสร้างโครงการหลายไฟล์
- build.zig.zon และตัวจัดการแพ็กเกจ
- การเพิ่มโมดูลจากผู้พัฒนาภายนอก