เมื่อเร็วๆ นี้ ได้มีการประกาศ เปิดตัว NPM เวอร์ชัน7.0ซึ่งเป็นตัวจัดการแพ็กเกจที่รวมอยู่ในชุดการแจกจ่าย Node.js และใช้ในการเผยแพร่โมดูล JavaScript
NPM เวอร์ชัน 7.0 ใหม่นี้มาพร้อมกับ Workspaces (ชุดคุณสมบัติใน npm CLI) ซึ่งรองรับการจัดการแพ็กเกจหลายตัวที่ขึ้นอยู่กับแพ็กเกจหลายตัว โดยสามารถติดตั้งได้ในขั้นตอนเดียว
สุขสันต์วันอังคาร! วันนี้ถือเป็นก้าวสำคัญสำหรับทีม npm CLI: เราได้เปิดตัว[email protected] อย่างเป็นทางการแล้ว หากคุณติดตามเรามาตลอดปีที่ผ่านมา หรือมากกว่านั้น คุณจะรู้ว่าเราทำงานอย่างหนักเพื่อนำเสนอเวอร์ชันนี้ให้กับคุณ
นอกจากนี้ยังมีฟีเจอร์การติดตั้งแพ็กเกจที่จำเป็นโดยอัตโนมัติ (ใช้ในปลั๊กอินเพื่อกำหนดแพ็กเกจพื้นฐานที่แพ็กเกจปัจจุบันได้รับการออกแบบมาให้ทำงานร่วมด้วย แม้ว่าจะไม่ได้ใช้งานโดยตรงก็ตาม)
ตอนนี้การอ้างอิงเพียร์ที่เหมาะสมสำหรับแพ็กเกจจะถูกพบโดยอัตโนมัติเนื่องจากก่อนหน้านี้นักพัฒนาต้องติดตั้งด้วยตนเอง
การกำหนด Peer dependency จะทำในไฟล์ package.jsonในส่วน "peerDependencies" NPM 7.0 ใช้ขั้นตอนวิธีในการตรวจสอบให้แน่ใจว่า Peer dependency ที่กำหนดไว้อย่างถูกต้องนั้น จะถูกพบในระดับเดียวกับหรือสูงกว่าระดับของแพ็กเกจที่ถูกพึ่งพาในโครงสร้าง node_modules
ความมุ่งมั่นและความมุ่งมั่นของเราแซงหน้าในช่วง 3 เดือนที่ผ่านมาเนื่องจากเราเลือกจังหวะการเผยแพร่รายสัปดาห์และเริ่มแก้ไขข้อบกพร่อง / ความคิดเห็นในช่วงเบต้า / rc ของเรา
ดังที่ได้กล่าวไว้ก่อนหน้านี้เรายังมีช่องว่างสำหรับการปรับปรุงอีกมาก แต่เราคิดว่า cli อยู่ในสถานที่ที่มั่นคงมากในวันนี้และพร้อมใช้งานแล้ว npm v7 จะจัดส่งพร้อมกับ Node.js v15 (PR ที่จะเข้าสู่งานนี้จะเปิดในไม่ช้า) และเราหวังว่าจะก้าวต่อไปของการเปลี่ยนแปลง / การปรับปรุงเมื่อเราเข้าใกล้ไตรมาสสุดท้ายของปีนี้
นอกจากนี้ ยัง มีการนำเสนอ รูปแบบการล็อกเวอร์ชันที่สอง (package-lock v2) และการรองรับไฟล์ล็อก yarn.lock อีกด้วย
รูปแบบการบล็อกแพ็กเก็ตได้รับการแก้ไขเพื่อให้เห็นได้ชัดว่าตอนนี้มีทุกสิ่งที่ npm ต้องการเพื่อสร้างโครงสร้างแพ็กเก็ตอย่างสมบูรณ์ จนถึงขณะนี้ไฟล์ yarn.lock ถูกละเว้นเนื่องจาก V7 ไคลเอนต์ npm ยังสามารถอ่านข้อมูลเมตาของแพ็กเกจและข้อมูลความละเอียดจากไฟล์เหล่านี้ได้
รูปแบบใหม่นี้ช่วยให้สามารถสร้างซ้ำได้ และมีทุกสิ่งที่จำเป็นในการสร้างโครงสร้างแพ็กเกจที่สมบูรณ์
นอกจากนี้ยังมีการกล่าวถึงว่าแม้จะมีการยกเครื่องภายในครั้งใหญ่ของ npm แต่ทีมงานก็ทำงานอย่างไม่รู้จักเหน็ดเหนื่อยเพื่อให้แน่ใจว่าขั้นตอนการทำงานส่วนใหญ่จะหยุดชะงักน้อยที่สุด
ได้มีการปรับปรุงโครงสร้างภายใน ครั้งใหญ่ โดยมีเป้าหมายเพื่อแยกฟังก์ชันการทำงานออกเป็นส่วนๆ เพื่อให้การบำรุงรักษาง่ายขึ้นและเพิ่มความน่าเชื่อถือ
ตัวอย่างเช่นรหัสสำหรับตรวจสอบและจัดการโครงสร้าง node_modules ถูกย้ายไปยังโมดูล Arborist แยกต่างหาก
เปลี่ยนไปใช้ฟิลด์ package.exports ซึ่งทำให้ไม่สามารถเชื่อมต่อโมดูลภายในผ่านการโทร require ()
แพ็กเกจ npx ที่เขียนใหม่ทั้งหมดซึ่งตอนนี้ใช้คำสั่ง "npm exec" เพื่อเรียกใช้ไฟล์ปฏิบัติการจากแพ็กเกจ
ผลลัพธ์ของคำสั่ง "npm audit" มีการเปลี่ยนแปลงอย่างมากทั้งเมื่อสร้างในรูปแบบที่มนุษย์อ่านได้และเมื่อเลือกโหมด "–json"
ปล่อย
เวอร์ชันใหม่พร้อมให้บริการแก่บุคคลทั่วไปแล้วและคุณสามารถอัปเดตเวอร์ชันก่อนหน้าหรือติดตั้งเวอร์ชันใหม่นี้ได้อย่างรวดเร็ว
สุดท้ายสิ่งสำคัญคือต้องทราบว่าที่เก็บ NPM ให้บริการมากกว่า 1,3 ล้านแพ็กเกจซึ่งนักพัฒนาประมาณ 12 ล้านคนใช้งาน มีการบันทึกการดาวน์โหลดประมาณ 75 พันล้านครั้งต่อเดือน NPM 7.0 เป็นรุ่นสำคัญรุ่นแรกที่เกิดขึ้นหลังจากการซื้อ NPM Inc โดย GitHub
เวอร์ชันใหม่นี้จะมาพร้อมกับการเปิดตัวแพลตฟอร์ม Node.js เวอร์ชัน 15 ในอนาคต ซึ่งมีกำหนดวางจำหน่ายในวันที่ 20 ตุลาคม หากต้องการติดตั้ง NPM 7.0 โดยไม่ต้องรอเวอร์ชันใหม่ของ Node.js คุณสามารถเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
npm i -g npm@7
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชันใหม่ที่เพิ่งวางจำหน่าย คุณสามารถตรวจสอบรายละเอียดได้ในประกาศอย่างเป็นทางการ