[Tips] หมดปัญหา Upgrade Node Package Dependencies ด้วย yarn-upgrade-all

koobitor
Medvine Tech
Published in
2 min readApr 25, 2018

--

โปรแกรมเมอร์ Node.JS หลายคนเจอปัญหาในการอัพเกรดตัว Modules Dependency ใช่ไหมครับ เพราะโปรเจคหนึ่งมี หลัก 10 จนถึงหลัก 100 Modules

วิธีที่ 1 ไล่เช็คไปทีละตัว

ผมใช้ Yarn เป็นตัวจัดการ Package ต่างๆในโปรเจคของผม เมื่อถึงเวลาต้อง Upgrade ตัว package ผมก็ต้องไล่เช็คที่ละ Package ว่ามี Version ใหม่ๆออกมาบ้างไหม หน้าตาก็จะเป็นแบบนี้ครับ

yarn upgrade package@<version>

วิธีนี้เราต้องนั่งเลือก Version ของแต่ละ Packge เองทั้งหมดทีละตัว ดูเป็นงานถึก ดูไม่ Engineer เลย

วิธีที่ 2 ใช้คำสั่ง yarn upgrade — latest

การใช้ yarn upgrade — latest จะอัพเดทเพียงบ้าง Package เท่านั้น

yarn upgrade — latest

จะเห็นว่าอัพเดทเฉพาะ Module ใหญ่ๆที่เปลี่ยน Version เท่านั้น เช่น Next.js จาก 4.0.1 เป็น 5.1.0 แต่เราอยากให้ทุกๆ Modules อัพเดทหนะสิ

ผมขอนำเสนอ yarn-upgrade-all

ทำให้เราสามารถอัพเดททุกๆ Package ในโปรเจคได้ใน Command เดียว ลดเวลามานั่งหา Version ของแต่ละ Package ไปได้เยอะเลย

  1. วิธีติดตั้งก็ง่ายเหมือนปลอกกล้วยเข้าปาก
yarn global add yarn-upgrade-all

2. วิธีใช้งานก็ พิมพ์ yarn-upgrade-all

yarn-upgrade-all

เพียงเท่านี้เราก็จะได้ Package Stable ที่ล่าสุดใช้งานในโปรเจคของเราแล้วครับ

diff package.json

หลักการทำงานของ yarn-upgrade-all

ก็คือใช้ Script ที่ไล่เช็ค Dependencies ในโปรเจคของเรา และทำการ Remove ออก และ Add กลับเข้าไปใหม่ทำให้ได้ package ที่ update แล้วครับ

yarn remove <package-name> && yarn add <package-name>

ทำไมถึงไม่ใช้ yarn upgrade --latest

บ้างครั้งเราเจอ Bug ในการ upgrade ด้วยวิธีนี้ การ Remove และ Add เข้าไปใหม่อาจจะเป็นวิธีที่ทำให้ Dependencies ที่เชื่อมโยงกันอยู่ได้รับการ Upgrade กลับเข้าไปด้วยครับ

ปล. อย่าลืมเทสโปรเจคหลัง Upgrade Modules ด้วยนะครับ เผื่อมีบางคำสั่งที่ Deprecated เดี๋ยวจะรันไม่ผ่านครับ

--

--

koobitor
Medvine Tech

Developer love to share. Like the open source. Listen and play musics. ^^