จัดการ Flutter หลายเวอร์ชันด้วย fvm (flutter version manager)

ไทย

Flutter and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC.

เมื่อไม่นานมานี้ผมได้มีโอกาสสร้าง MVP ตัวหนึ่งด้วย Flutter และด้วยความที่ส่วนตัวเป็นคนชอบเข้าไปดู ค้นหาโปรเจคทั้งหลายที่มีคนเคยเขียนไว้ใน GitHub เพื่อดูว่า Open Source โปรเจคต่าง ๆ เขามีวิธีการเขียน Widget ที่สามารถนำกลับมาใช้งานใหม่ได้อย่างไรกันบ้าง การจัดการ codebase อย่างไร หรือแอบจิ๊กเอา GitHub Workflow ไฟล์มาปรับในโปรเจคบ้างก็มี แต่เอาละเข้าเนื้อหากันเลย

ตอนนั้นคือผม clone โปรเจคลงมาแล้วลองนำมาเล่นบนเครื่องตัวเองทำให้เจอปัญหาในหลายเรื่องไม่ว่าจะเป็น โปรเจคเก่าไปแล้ว Flutter SDK หรือ dart ในเครื่องมีเวอร์ชันที่ใหม่ไปทำให้การนำมารันทำได้ค่อนข้างยาก รวมถึงการอัพเกรดและดาวน์เกรดเช่นกัน

การอัพเดทและดาวน์เกรดก็มีปัญหาเช่นกัน ถ้าใครเคยลงด้วย Homebrew การอัพเกรดอาจทำให้ Environment path ผิดทำให้ต้องมาเซ็ทใหม่กันอีกรอบเพราะเลขเวอร์ชันเปลี่ยนไป

แล้ว flutter upgrade | downgrade ใช้ไม่ได้เหรอ?
ใช้ได้เช่นกับครับ ถ้าเราสามารถใช้ได้อย่างไม่มีปัญหา แต่ผมลองใช้แล้วติดปัญหาตรงที่ถ้าเกิดเรา downgrade flutter จะเวิร์คกับเวอร์ชันที่อยู่ใน Flutter build release channel เท่านั้น ถ้าต่ำหรือเก่ากว่าหรือระบุเป็นเลขเวอร์ชันไปเลยก็จะไม่ได้ละ

fvm คืออะไร
หากใครเคยใช้ nvm, rbenv, jenv สิ่งนี้คือสิ่งเดียวกันเลยครับ มันจะช่วยให้มี Flutter หลายเวอร์ชันได้ในเครื่องเดียว รวมถึงการจัดการ การสลับไปมาระหว่างเวอร์ชันได้อย่างไร้รอยต่อ (หากใครไม่เคยใช้ nvm สามารถอ่านต่อได้ที่บล็อกนี้ครับ) เพื่อไม่ให้เสียเวลาเรามาดูวิธีการใช้งานดีกว่าครับ

ติดตั้ง fvm
ขั้นแรกก่อนที่จะใช้งานเราจำเป็นต้องติดตั้ง fvm (ต้องมี Homebrew) ก่อนครับ

เลือกเวอร์ชันของ SDK
หลังจากติดตั้งเสร็จเรียบร้อยแล้ว เรามาเลือกเวอร์ชันของ SDK ที่ต้องการจะติดตั้งโดยการการใช้คำสั่ง fvm releases

ผมเลือกที่จะติดตั้ง SDK เวอร์ชัน 3.0.3 (stable) และ 2.13.0–0.1.pre(dev) จะต้องพิมพ์คำสั่ง fvm use <version>

ติดตั้ง Flutter SDK
ในการติดตั้ง Flutter SDK จะใช้คำสั่ง flutter install <version>

เรียกดูเวอร์ชันของ Flutter
เมื่อติดตั้งเสร็จสิ้น เราสามารถดูเวอร์ชันที่ติดตั้งด้วยการใช้คำสั่ง fvm list

เลือก Global version สำหรับ Flutter SDK
ทำได้ด้วยการใช้คำสั่ง fvm global <version>

สาเหตุที่จำเป็นต้องเซ็ทค่าไว้เพราะว่าถ้าเกิดเรารันคำสั่ง fvm flutter run และไม่เจอการตั้งค่าของโปรเจคในระดับ local แล้วละก็มันจะ fallback กลับมาที่ global version ครับ

สลับเวอร์ชันในระดับ local หรือระหว่างโปรเจค
สามารถทำได้โดยการใช้คำสั่ง fvm use <version>

เท่านี้เราก็จะได้ Flutter เวอร์ชัน stable และ dev อยู่ในเครื่องเดียวกันเรียบร้อย ส่วนต่อไปก็เป็น

สร้าง alias สำหรับคนขี้เกียจพิมพ์

เท่านี้เราก็สามารถใช้คำสั่ง f และ d โดยไม่ต้องพิมพ์เต็มว่า fvm flutter <command>หรือ fvm dart <command> เช่น

  1. Project
  2. Ancestor directory
  3. Global (Set through FVM)
  4. Environment (Flutter version configured on PATH)

Related Content

  • ทั้งหมด
  • Others
  • Jobs
  • Tech innovation
  • Events
  • Services & Products
  • Joint ventures
  • Leadership
  • User experience
  • Technology
  • Strategy
  • Product
  • Lifestyle
  • Data science
  • Careers
  • Finance
  • Blockchain
eKYC Service

เชื่อว่าหลาย ๆ คนน่าจะรู้จัก หรือได้ยินคำว่า eKYC กันมาบ้าง โดยเฉพาะช่วงการแพร่ระบาดของ COVID-19 ในช่วง 2–3 ปี ที่ผ่านมานี้ แต่อีกหลาย ๆ คน ก็อาจจะไม่รู้จัก หรือคุ้นเคยกับคำ ๆ นี้มากนัก วันนี้เราจะมาทำความรู้จักกับบริการ…

August 30, 2022
Work Inspiration @ SCB TechX EP 5: ออกกำลังกายไม่ใช่เรื่องง่าย แต่ถ้ามีแรงจูงใจกีฬาไหนก็ทำได้

สวัสดีค่ะ ช่วงนี้ฝนตกอากาศเปลี่ยนแปลงบ่อย หลายๆคนโดยเฉพาะพนักงานออฟฟิศอาจมีได้รับสัญญาณเตือนเล็กๆน้อยๆจากปัญหาสุขภาพกันมาบ้าง Work Inspiration EP:5 นี้...

October 6, 2022

Your consent required

If you want to message us, please give your consent to SCB TechX to collect, use, and/or disclose your personal data.

| The withdrawal of consent

If you want to withdraw your consent to the collection, use, and/or disclosure of your personal data, please send us your request.

Message sent

We have receive your message and We will get back to you shortly.