ข้อจำกัดเวอร์ชันและไฟล์ล็อก
ตรึงและแก้ไขเวอร์ชันของการพึ่งพา
ข้อจำกัดเวอร์ชันและไฟล์ล็อก เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุผลที่มีข้อกำหนด
version constraint บอก pub ว่าโปรเจกต์ยอมรับแพ็กเกจรุ่นใดบ้าง ช่วยสร้างสมดุลระหว่างการรับการแก้ไขกับการหลีกเลี่ยงการเปลี่ยนแปลงที่ทำให้สิ่งเดิมใช้ไม่ได้ 🎯
http: ^1.2.0การกำหนดเวอร์ชันเชิงความหมาย
แพ็กเกจ Dart ใช้ semantic versioning: major.minor.patch การเพิ่ม major หมายถึงการเปลี่ยนแปลงที่อาจทำให้ใช้ไม่ได้ การเพิ่ม minor คือการเพิ่มฟีเจอร์ และการเพิ่ม patch คือการแก้บัก
version: 2.4.1ข้อกำหนดแบบ caret
caret ^1.2.0 ยอมรับทุกเวอร์ชันตั้งแต่ 1.2.0 จนถึงก่อน 2.0.0 นี่คือค่าเริ่มต้นที่เป็นมิตรซึ่ง pub ใช้
http: ^1.2.0กำหนดเวอร์ชันเดียว
การเขียนตัวเลขเปล่า ๆ หมายถึง exactly เวอร์ชันนั้นเท่านั้นและไม่มีเวอร์ชันอื่น ใช้อย่างจำกัดเมื่อคุณต้องการรุ่นเดียวที่ทราบว่าใช้งานได้
http: 1.2.0ข้อกำหนดแบบช่วง
คุณสามารถเขียน range ด้วยตัวดำเนินการเปรียบเทียบได้ วิธีนี้ช่วยควบคุมทั้งขอบเขตล่างและขอบเขตบนได้อย่างละเอียด
http: '>=1.0.0 <2.0.0'ข้อกำหนดแบบ any
การใช้ any จะยอมรับทุกเวอร์ชัน ซึ่งมีความเสี่ยงเพราะรุ่น major ในอนาคตอาจทำให้โค้ดใช้ไม่ได้ ดังนั้นควรใช้ caret แทน
http: anyทำความรู้จักไฟล์ล็อก
เมื่อ pub แก้ไขการพึ่งพาของคุณแล้ว จะบันทึกเวอร์ชันที่เลือกอย่างแน่นอนไว้ใน pubspec.lock ไฟล์นี้จะตรึงสิ่งที่ทุกคนติดตั้งจริง
การสร้างที่ทำซ้ำได้
ไฟล์ล็อกรับรองการสร้างแบบ reproducible กล่าวคือ เพื่อนร่วมทีมที่เรียกใช้ pub get จะได้เวอร์ชันเดียวกับที่คุณทดสอบ ไม่ใช่การอัปเกรดที่เกิดขึ้นโดยไม่คาดคิด
ควรส่งไฟล์นี้เข้าระบบควบคุมเวอร์ชันหรือไม่
สำหรับแอป ให้ commit pubspec.lock เข้าระบบควบคุมเวอร์ชัน สำหรับแพ็กเกจที่นำกลับมาใช้ใหม่ได้ ให้ไม่นำไฟล์นี้เข้าไป เพื่อให้ผู้ใช้แก้ไขเวอร์ชันด้วยตนเอง
อัปเดตไฟล์ล็อก
เรียกใช้ dart pub upgrade เพื่อปรับ pubspec.lock เป็นเวอร์ชันใหม่ที่สุดที่ข้อกำหนดของคุณอนุญาต ส่วน get แบบปกติจะคงเวอร์ชันที่ตรึงไว้เดิม
dart pub upgradeแก้ไขความขัดแย้ง
หากแพ็กเกจสองรายการต้องการเวอร์ชันที่เข้ากันไม่ได้ pub จะแจ้ง conflict จากนั้นคุณต้องผ่อนข้อกำหนดหรือเลือกเวอร์ชันแพ็กเกจที่เข้ากันได้
ตรวจสอบความเข้าใจ
ข้อกำหนด ^1.2.0 อนุญาตเวอร์ชันใดบ้าง
สรุปทบทวน
ตอนนี้คุณอ่าน constraints เช่น caret และช่วงเวอร์ชันได้แล้ว และทราบว่า pubspec.lock จะตรึงเวอร์ชันที่แน่นอนเพื่อให้สร้างซ้ำได้และปราศจากความขัดแย้ง 🎉
เรียนรู้ Dart ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “ข้อจำกัดเวอร์ชันและไฟล์ล็อก” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ข้อจำกัดเวอร์ชันและไฟล์ล็อก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ข้อจำกัดเวอร์ชันและไฟล์ล็อก”
ตรึงและแก้ไขเวอร์ชันของการพึ่งพา คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “ข้อจำกัดเวอร์ชันและไฟล์ล็อก” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม
ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างของ pubspec.yaml
- เพิ่มการพึ่งพาด้วย dart pub
- การนำเข้า การส่งออก และไลบรารี
- ข้อจำกัดเวอร์ชันและไฟล์ล็อก