เรื่องวุ่นวานของการใช้ npm i --legacy-peer-deps
18 มิ.ย. 68 , 06:01
คำสั่ง install package ของ js

ปกติถ้าเราใช้ package ที่มันขัดแข้งขัดขากัน โดยเฉพาะ react 18 แล้วดันใช้ package ที่ไม่ได้อัพเดท แล้วสั่ง npm i เราก็จะเจอ error ประมาณนี้

ซึ่งจริงๆ เราแก้ได้ง่ายๆ ด้วยการสั่ง ยาวขึ้นเป็น

ก็ใช้ได้แล้วครับ

แต่ประเด็นคือ ขี้เกียจไง เพราะ มันต้องพิมพ์ยาวขึ้น แล้วก็พวก IDE ทั่วไป คลิ้ก install มันเติมไอ้ของแบบนี้เข้าไปไม่ได้

ดังนั้น ก็มีวิธีแก้เพิ่มด้วยการทำแบบนี้ครับ

สร้างไฟล์ชื่อ.npmrc(มีจุดข้างหน้านะครับ)
เติมการตั้งค่าไปบรรทัดนึง ว่าlegacy-peer-deps=true
แค่นี้ครับ

เท่านี้ เราก็สั่งด้วย npm i ธรรมดา หรือใช้พวก not key ในการ update/install package ได้แล้วครับ

แถมอีกนิด คือ ไอ้พวก CI/CD บางที่มันก็จะไปติด legacy-peer-deps นี้ด้วยเหมือนกัน ดังนั้นการตั้งค่าด้วยไฟล์ .npmrc เลยกลายเป็นเรื่องสำคัญมาก เพราะไม่งั้นก็จะ build ไม่ได้เลย