ปกติถ้าเราใช้ package ที่มันขัดแข้งขัดขากัน โดยเฉพาะ react 18 แล้วดันใช้ package ที่ไม่ได้อัพเดท แล้วสั่ง npm i
เราก็จะเจอ error ประมาณนี้
npm ERR! Conflicting peer dependency: [email protected]
npm ERR! node_modules/react
npm ERR! peer react@"^17.0.1" from @toast-ui/[email protected]
npm ERR! node_modules/@toast-ui/react-editor
npm ERR! @toast-ui/react-editor@"3.2.0" from the root project
ซึ่งจริงๆ เราแก้ได้ง่ายๆ ด้วยการสั่ง ยาวขึ้นเป็น
npm i --legacy-peer-deps
ก็ใช้ได้แล้วครับ
แต่ประเด็นคือ ขี้เกียจไง เพราะ มันต้องพิมพ์ยาวขึ้น แล้วก็พวก IDE ทั่วไป คลิ้ก install มันเติมไอ้ของแบบนี้เข้าไปไม่ได้
ดังนั้น ก็มีวิธีแก้เพิ่มด้วยการทำแบบนี้ครับ
.npmrc
(มีจุดข้างหน้านะครับ)legacy-peer-deps=true
เท่านี้ เราก็สั่งด้วย npm i
ธรรมดา หรือใช้พวก not key ในการ update/install package ได้แล้วครับ
แถมอีกนิด คือ ไอ้พวก CI/CD บางที่มันก็จะไปติด legacy-peer-deps
นี้ด้วยเหมือนกัน ดังนั้นการตั้งค่าด้วยไฟล์ .npmrc เลยกลายเป็นเรื่องสำคัญมาก เพราะไม่งั้นก็จะ build ไม่ได้เลย