ติดตั้งโหนดเวอร์ชันเดียวกันตามกลไกที่ระบุใน package.json สำหรับงานการพัฒนาและการปรับใช้

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

อย่างไรก็ตาม ตามหลักการแล้ว ฉันต้องการรักษาเวอร์ชันโหนดไว้ในที่เดียวเท่านั้น และในขณะเดียวกันก็ให้แน่ใจว่านักพัฒนาทั้งหมดใช้เวอร์ชันโหนดเดียวกัน ซึ่งใช้โดยการทำงานอัตโนมัติ CI/CD ของโปรเจ็กต์ด้วย

เราจะพิจารณาแนวทางหนึ่งที่เป็นไปได้เพื่อให้บรรลุเป้าหมายนี้ทันที!

การบังคับใช้โหนดและเวอร์ชัน npm เฉพาะ

ก่อนอื่น หากคุณต้องการกำหนดเวอร์ชันเฉพาะของ โหนด และ npm ที่จะใช้ในโปรเจ็กต์โหนดของคุณ ก็มีความเป็นไปได้ที่จะเพิ่มเวอร์ชันเหล่านั้นลงใน package.jsonโดยใช้การตั้งค่า “เครื่องยนต์”

นอกจากนี้ หากคุณต้องการบังคับใช้เวอร์ชันที่ระบุอย่างเคร่งครัดด้วยเหตุผลบางประการ คุณสามารถทำได้โดยสร้างไฟล์ .npmrc ในโปรเจ็กต์พร้อมการตั้งค่าต่อไปนี้:

การใช้โหนดเวอร์ชันเดียวกันในระบบอัตโนมัติของ CI/CD

หลังจากกำหนดเวอร์ชันของโหนดผ่านการตั้งค่า "กลไก" ใน package.json แล้ว ไปป์ไลน์ CI/CD ก็ควรใช้เวอร์ชันนี้ด้วยเช่นกัน สำหรับสิ่งนี้ เราจำเป็นต้องอ่านข้อมูลที่เกี่ยวข้องจากไฟล์นั้น

สิ่งที่เราต้องทำคือเขียนสคริปต์ขนาดเล็กที่เก็บเวอร์ชันไว้ในตัวแปร แน่นอนว่ามีหลายวิธีในการบรรลุเป้าหมายนี้ หากต้องการอ่านเวอร์ชันในกรณีนี้ เราใช้ jq ซึ่งเป็นโปรเซสเซอร์ JSON แบบบรรทัดคำสั่ง

ด้านล่างนี้คือสองตัวอย่างของงานที่เกี่ยวข้องกันใน GitHub Actions และ Azure Pipelines แต่แน่นอนว่าวิธีการนี้ใช้ได้กับผู้ให้บริการรายอื่นเช่นกัน:

บทสรุป

โดยส่วนตัวแล้ว ฉันพบว่าแนวทางนี้ค่อนข้างมีประโยชน์และใช้กับโปรเจ็กต์ส่วนตัวทั้งหมดของฉันบน GitHub ได้ด้วย แน่นอนว่าฉันเข้าใจดีว่ามีโปรเจ็กต์ที่ต้องใช้เวอร์ชันโหนดที่แตกต่างกันอย่างแน่นอน ดังนั้นจึงใช้แนวทางที่แสดงไว้ที่นี่ไม่ได้