สวัสดีนักพัฒนา วันนี้ฉันพบสิ่งที่น่าสนใจเกี่ยวกับฟังก์ชันอักขระของแพ็คเกจโหนด ( ^ ) และ ( ~ tidle ) ให้ฉันแบ่งปันสิ่งนี้กับพวกคุณ
Npm บอกว่าให้ทำตามการกำหนดเวอร์ชันเชิงความหมาย

เกี่ยวกับการกำหนดเวอร์ชันเชิงความหมาย

เพื่อให้ระบบนิเวศของ JavaScript แข็งแรง เชื่อถือได้ และปลอดภัย ทุกครั้งที่คุณทำการอัปเดตที่สำคัญกับแพ็คเกจ npm ที่คุณเป็นเจ้าของ เราขอแนะนำให้เผยแพร่แพ็คเกจเวอร์ชันใหม่ด้วยหมายเลขเวอร์ชันที่อัปเดตในไฟล์ "package.json" ที่ตามหลัง "ความหมาย" ข้อมูลจำเพาะเวอร์ชัน».

การใช้การกำหนดเวอร์ชันเชิงความหมายเพื่อระบุประเภทการอัปเดตที่แพ็คเกจของคุณสามารถยอมรับได้

คุณสามารถระบุประเภทการอัปเดตที่แพ็คเกจของคุณสามารถยอมรับจากการขึ้นต่อกันได้ในไฟล์ package.json ของแพ็คเกจของคุณ

ตัวอย่างเช่น หากต้องการระบุช่วงเวอร์ชันที่ยอมรับได้จนถึง 1.0.4 ให้ใช้ไวยากรณ์ต่อไปนี้:

  • การเผยแพร่แพทช์: 1.0 หรือ 1.0.x หรือ ~1.0.4
  • รุ่นรอง: 1 หรือ 1.x หรือ ^1.0.4
  • รุ่นหลัก: * หรือ x

ในตัวอย่างของเรา ข้อเท็จจริงสำคัญที่ควรทราบ

เรามีแพ็คเกจที่มีคาเร็ต ( ^ ) อยู่หน้าเวอร์ชันแพ็คเกจ Caret มีฟังก์ชันในการดึงข้อมูลเวอร์ชันรองล่าสุดที่มีอยู่ตั้งแต่เวลา npm และติดตั้งโดยอัตโนมัติ แต่มีข้อยกเว้น

หากแพ็คเกจมีเวอร์ชันที่ขึ้นต้นด้วย 0.x.x ฟังก์ชันนี้จะไม่ทำงานตาม Node semver เอกสารประกอบ

ดังนั้นนักพัฒนาจึงต้องอัปเดตแพ็คเกจเป็นเวอร์ชันล่าสุดด้วยตนเอง

ฉันจะพบข้อยกเว้นนี้ได้อย่างไร
จริงๆ แล้วฉันมีส่วนร่วมในโปรเจ็กต์หนึ่งซึ่งมีการผลักดันครั้งล่าสุดเมื่อ 3 เดือนที่แล้ว ดังนั้นการขึ้นต่อกันของโปรเจ็กต์จึงเก่า ดังนั้นฉันจึงติดตั้ง npm และฉันสังเกตเห็นว่าแพ็คเกจ vayu และ vayu vue ไม่ได้รับการอัพเดตเป็นเวอร์ชันล่าสุด นั่นคือวิธีที่ฉันค้นพบข้อเท็จจริงนี้เกี่ยวกับเวอร์ชัน npm