node-gyp เป็นเครื่องมือที่ดีที่ช่วยให้นักพัฒนาสามารถคอมไพล์โมดูลเสริมของ Node ได้ในหลายแพลตฟอร์ม เป็นที่นิยมและใช้กันอย่างแพร่หลายในปัจจุบัน ดังนั้นจึงมักถูกรวมเป็นการพึ่งพาสำหรับแพ็คเกจ NPM ส่วนใหญ่
ในระบบปฏิบัติการส่วนใหญ่ node-gyp จะไม่ทำให้เกิดปัญหาใดๆ การติดตั้ง node-gyp และแพ็คเกจ NPM ที่เหลือมักจะทำงานได้อย่างราบรื่นและมีประสิทธิภาพ อย่างไรก็ตาม กรณีนี้ไม่เกิดขึ้นกับผู้ใช้ทุกคน นักพัฒนาบางคนรายงานว่ามีปัญหาในการสร้าง node-gyp ใหม่บน macOS ส่งผลให้นักพัฒนาที่ได้รับผลกระทบได้รับประสบการณ์ที่น้อยกว่าที่เคยเป็นมา ข้อผิดพลาดนี้ยังนำไปสู่ข้อผิดพลาดมากมายและทำให้สิ่งต่างๆ ผิดพลาดได้
ปัญหานี้ไม่ใช่เรื่องใหม่ นักพัฒนาซอฟต์แวร์ที่ใช้ macOS เวอร์ชันเก่าเคยพบข้อผิดพลาดนี้มาก่อน ด้วยการเปิดตัว macOS Catalina นักพัฒนาหลายรายยังรายงานว่าการสร้าง node-gyp ใหม่ล้มเหลวบน Mac หลังจากอัปเกรดเป็นเวอร์ชัน macOS ใหม่ ข้อผิดพลาดนี้ทำให้นักพัฒนาไม่สามารถติดตั้งแพ็คเกจ node-gyp ที่ต้องการได้
หากคุณพบข้อผิดพลาดนี้ คุณจะเข้าใจว่าความล้มเหลวในการสร้าง node-gyp บน Mac ใหม่นั้นน่าหงุดหงิดเพียงใด คุณไม่สามารถก้าวไปข้างหน้ากับแอพหรือการพัฒนาซอฟต์แวร์ของคุณเว้นแต่คุณจะได้รับการแก้ไขข้อผิดพลาดนี้ โชคดีที่เราได้ทำทุกอย่างให้คุณแล้ว หากคุณพบว่าเป็นไปไม่ได้ที่จะดำเนินโครงการต่อเนื่องจากข้อผิดพลาดนี้ คุณสามารถลองใช้วิธีแก้ปัญหาตามรายการด้านล่างเพื่อแก้ไขปัญหาได้
เคล็ดลับแบบมือโปร:สแกน Mac ของคุณเพื่อหาปัญหาด้านประสิทธิภาพ ไฟล์ขยะ แอพที่เป็นอันตราย และภัยคุกคามด้านความปลอดภัย
ที่อาจทำให้ระบบมีปัญหาหรือทำงานช้าได้
Node-Gyp คืออะไร
node-gyp เป็นเครื่องมือที่ใช้ในการคอมไพล์ Node.js Addons ซึ่งเป็นโมดูล Node.js ดั้งเดิมที่เขียนด้วยภาษา C หรือ C++ โมดูลเหล่านี้จำเป็นต้องรวบรวมบนเครื่องของคุณโดยใช้เครื่องมือเช่น node-gyp Node-gyp ใช้งานได้บน Windows, macOS และ Linux
โดยทั่วไปแล้ว Node-gyp นั้นใช้งานง่ายเนื่องจากมีอินเทอร์เฟซที่สอดคล้องกัน คุณยังสามารถใช้คำสั่งเดียวกันเพื่อสร้างหรือสร้างโมดูลของคุณใหม่บนแพลตฟอร์มต่างๆ Node-gyp ยังรองรับ Node หลายเวอร์ชันเป้าหมายอีกด้วย
หากคุณได้รับข้อผิดพลาด npm gyp ใน Mojave หรือ macOS เวอร์ชันก่อนหน้า คุณต้องตรวจสอบข้อกำหนดอีกครั้งเพื่อให้ node-gyp ทำงานได้
นี่คือข้อกำหนดที่คุณต้องติดตั้งเพื่อให้ node-gyp ทำงานบน macOS:
- Python v2.7, v3.5, v3.6 หรือ v3.7
- Xcode – ยูทิลิตี้ที่ช่วยให้นักพัฒนาสามารถสร้างแอพบน macOS, iOS และ iPadOS
คุณต้องติดตั้ง Xcode Command Line Tools เวอร์ชันที่ถูกต้อง ซึ่งเป็นส่วนหนึ่งของชุดเครื่องมือและไลบรารีการพัฒนาซอฟต์แวร์ของ XCode
ในการติดตั้ง Xcode Command Line Tools ให้ทำตามคำแนะนำด้านล่าง:
- เริ่ม Xcode บน Mac ของคุณ
- เลือก ค่ากำหนด จากเมนู Xcode
- ภายใต้ ทั่วไป แผง คลิกที่ ดาวน์โหลด .
- เมื่อหน้าต่างดาวน์โหลดเปิดขึ้น ให้คลิกที่ ส่วนประกอบ แท็บ
- คลิกที่ ติดตั้ง ปุ่มข้าง เครื่องมือบรรทัดคำสั่ง
- เข้าสู่ระบบโดยใช้บัญชีนักพัฒนา Apple ของคุณเพื่อสิ้นสุดขั้นตอนการติดตั้ง
หากคุณใช้งาน macOS Catalina คุณสามารถดาวน์โหลดเวอร์ชันที่เหมาะสมของเครื่องมือบรรทัดคำสั่งสำหรับ Xcode สำหรับเวอร์ชัน Catalina ของคุณได้จากที่นี่ สำหรับ macOS 10.15.3 ชื่อไฟล์ควรเป็น Command_Line_Tools_for_Xcode_11.3.1.dmg . เมื่อคุณติดตั้งส่วนประกอบที่ถูกต้องแล้ว คุณจะสามารถสร้างโดยใช้ node-gyp ได้สำเร็จ หากคุณได้รับ node-gyp rebuild ที่ล้มเหลวบน Mac คุณต้องตรวจสอบส่วนประกอบเหล่านี้เพื่อดูว่ามีอะไรผิดพลาด
วิธีแก้ไขข้อผิดพลาดในการสร้าง Node-gyp
การติดตั้งโมดูลโหนดเป็นกระบวนการที่ง่าย คุณเพียงแค่ต้องเรียกใช้คำสั่งเฉพาะและคุณก็ควรไปได้ดี หากคุณพบว่า node-gyp rebuild Fails บน Mac ล้มเหลว คุณต้องย้อนกลับไปดูว่าเกิดอะไรขึ้น
แต่ก่อนที่คุณจะดำเนินการ ต่อไปนี้คือขั้นตอนการแก้ไขปัญหาเบื้องต้นที่คุณควรลอง:
- รีสตาร์ทคอมพิวเตอร์เพื่อกำจัดบั๊กชั่วคราวที่อาจส่งผลต่อระบบของคุณ
- ปิดแอปที่ไม่จำเป็นทั้งหมดเพื่อเพิ่มทรัพยากรในคอมพิวเตอร์ของคุณ
- ปิดใช้งานซอฟต์แวร์ความปลอดภัยของคุณชั่วคราว เช่น โปรแกรมป้องกันไวรัสหรือโปรแกรมป้องกันมัลแวร์
- ล้างระบบของคุณโดยใช้แอปซ่อม Mac .
หากคุณยังคงได้รับข้อผิดพลาดในการสร้าง node-gyp ใหม่ โปรดดูวิธีแก้ไขด้านล่างและดูว่าวิธีใดเหมาะกับคุณ
แก้ไข #1:ตรวจสอบส่วนประกอบที่จำเป็นอีกครั้ง
สิ่งแรกที่คุณต้องทำเมื่อคุณได้รับข้อผิดพลาด npm gyp บน Mojave หรือเวอร์ชัน macOS อื่น ๆ คือการตรวจสอบข้อกำหนดการติดตั้งของ node-gyp อีกครั้ง ดังที่กล่าวไว้ในหัวข้อข้างต้น คุณต้องมีองค์ประกอบสามอย่างจึงจะใช้งานได้ กล่าวคือ:
- หลาม
- Xcode
- เครื่องมือบรรทัดคำสั่ง Xcode
อย่าลืมติดตั้งภาษา C และ C++ ซึ่งจำเป็นสำหรับการรวบรวมโมดูล หากสิ่งเหล่านี้ขาดหายไปหรือไม่ทำงาน คุณจะได้รับข้อผิดพลาดในการสร้างใหม่ล้มเหลวอย่างแน่นอน การติดตั้งส่วนประกอบที่ขาดหายไปหรือผิดพลาดใหม่จะช่วยแก้ไขปัญหาได้
แก้ไข #2:อัปเดตส่วนประกอบ Node-Gyp ของคุณ
บางครั้งการติดตั้งส่วนประกอบเหล่านี้ไม่เพียงพอ คุณต้องตรวจสอบให้แน่ใจว่าคุณใช้เวอร์ชันที่ถูกต้องสำหรับ macOS ของคุณ คุณสามารถเลือกระหว่าง Python v2.7, v3.5, v3.6 หรือ v3.7 ขึ้นอยู่กับเวอร์ชันที่เหมาะกับคุณ สำหรับ Xcode คุณสามารถดาวน์โหลดได้จากลิงค์นี้ คุณต้องติดตั้ง node-gyp เวอร์ชันล่าสุดเผื่อไว้ด้วย
แก้ไข #3:ทำการทดสอบกรด
คุณสามารถตรวจสอบว่า Xcode Command Line Tools บนคอมพิวเตอร์ของคุณได้รับการติดตั้งอย่างถูกต้อง และจะทำงานกับ node-gyp ได้หรือไม่ คุณสามารถเรียกใช้การทดสอบกรดโดยทำตามขั้นตอนเหล่านี้:
- บน Xcode ให้รันคำสั่งนี้:
/usr/sbin/pkgutil –packages | grep CL - หากคุณเห็น com.apple.pkg.CLTools_Executables ตามรายการแล้วคุณจะไม่มีปัญหา หากไม่เป็นเช่นนั้น แสดงว่าการทดสอบนี้ล้มเหลวและคุณต้องติดตั้งใหม่
- รันคำสั่งถัดไป:
/usr/sbin/pkgutil –pkg-info com.apple.pkg.CLTools_Executables - คุณควรเห็น เวอร์ชัน:11.0.0 (หรือหลังจากนั้น) ตามรายการ หากไม่เป็นเช่นนั้น แสดงว่าการทดสอบนี้ล้มเหลวเช่นกัน และคุณต้องติดตั้งใหม่
แก้ไข #4:เปลี่ยนไปใช้ Python เวอร์ชันอื่น
นักพัฒนาที่ได้รับผลกระทบจำนวนมากตั้งข้อสังเกตว่าการเปลี่ยนเวอร์ชันของ Python ที่ใช้สำหรับสภาพแวดล้อมที่ใช้งานช่วยแก้ไขปัญหาได้ สิ่งนี้เกี่ยวข้องกับความเข้ากันได้ระหว่างเวอร์ชัน macOS, เวอร์ชันโหนด และเวอร์ชัน Python ที่คุณใช้ ผู้ใช้บางคนพบว่า Python เวอร์ชันเก่า เช่น v2.7 มีความเสถียรมากกว่าเวอร์ชันที่ใหม่กว่า ทดลองกับเวอร์ชันต่างๆ และดูว่าเวอร์ชันใดเหมาะกับคุณ
สรุป
การสร้าง node-gyp ใหม่ล้มเหลวบน Mac อาจเป็นเรื่องยุ่งยาก และการค้นหาว่าอะไรผิดพลาดอาจทำให้เสียเวลาอย่างมาก ดังนั้น หากคุณพบข้อผิดพลาดนี้ โปรดอ่านคำแนะนำด้านบน เพื่อให้คุณทราบว่าต้องทำอย่างไรเพื่อแก้ไขข้อผิดพลาด