สวัสดีนักพัฒนา วันนี้ฉันพบสิ่งที่น่าสนใจเกี่ยวกับฟังก์ชันอักขระของแพ็คเกจโหนด ( ^ ) และ ( ~ 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