3 เหตุผลที่ย้ายจาก Yarn ไปใช้ pnpm แทน
(hiddenest.dev)บทความนี้สรุปสิ่งที่รู้สึกหลังจากย้ายแพ็กเกจแมเนเจอร์ที่ใช้ในฝั่งฟรอนต์เอนด์ของ Airbridge จาก Yarn Berry ไปเป็น pnpm และใช้งานมาเป็นเวลา 1 ปี
ปัญหาที่พบจาก Yarn Berry
- Yarn PnP สร้างภาระให้กับ Git อย่างต่อเนื่อง
- การต่อสู้อันยืดเยื้อกับ Ghost Dependency
- บั๊กจุกจิกต่าง ๆ ของ Yarn Workspace
วิธีแก้ที่ได้จากการนำ pnpm มาใช้
- เวลาติดตั้งแพ็กเกจระหว่างกระบวนการดีพลอยเร็วขึ้นประมาณ 30 วินาที ~ 1 นาที
- เก็บแพ็กเกจไว้ในสโตร์ส่วนกลาง (Virtual Store) / เชื่อมกับ
node_modulesของโปรเจ็กต์ด้วย symlink - ไม่ติดตั้งแพ็กเกจที่ซ้ำกัน จึงประหยัดทั้งพื้นที่จัดเก็บและเครือข่าย
- เก็บแพ็กเกจไว้ในสโตร์ส่วนกลาง (Virtual Store) / เชื่อมกับ
- ตั้งค่า monorepo ได้ง่ายขึ้น เพราะมีการลิงก์ระหว่างแพ็กเกจให้อัตโนมัติ
- ฟีเจอร์ที่เคยใช้ใน Yarn Berry เช่น
patch-package,dedupeแทบทั้งหมดก็ยังใช้งานได้เหมือนเดิม
2 ความคิดเห็น
ผมคิดว่าน่าจะมีส่วนแบบนั้นอยู่เหมือนกัน และในกรณีของ Yarn Berry เอง จุดที่มีระบบปลั๊กอินที่ทรงพลังก็น่าจะเป็นอีกปัจจัยหนึ่งด้วยครับ