ทำความรู้จักการใช้ Node Version Manager (nvm)


สาเหตุที่ใช้

เชื่อว่า ทุกคนที่เขียน nodejs อาจเคยเจอปัญหา เวลาทำงานร่วมกันกับคนอื่น แล้ว ประสบปัญหา เรื่อง version ของ nodejs ที่ของในทีมไม่ตรงกัน > งั้นก็มีวิธีแก้ไขง่ายๆ ด้วยการบอกให้คนอื่นเขียน version เดียวกันทั้งทีมสิ

วิธีนั้นเป็นวิธีที่ควรทำ แต่กลับกันเมื่อเรา ต้องไปดูแลหรือ แก้ไข โปรเจค หลายๆตัวที่ version ไม่เหมือนกัน เราจะทำอย่างไร สิ่งที่จะช่วยอย่างแรกที่นึกออกสำหรับผม คงเป็น การนำ docker มาช่วยในการทำงาน แต่ด้วยความที่ ก่อนหน้านี้ VS Code ที่ผมใช้ผมยังไม่รู้จัก extension ตัวนึงของ vscode ที่ชื่อว่า Remote - Containers

Remote - Containers - Visual Studio Marketplace

Screen Shot 2563-08-09 at 13.43.08.png

ก่อนน่านี้ผมเลยได้ รู้จัก เครื่องมือตัวนึงที่เอามาจัดการ version nodejs ที่ชื่อว่า NVM ผมเลยนำมันมาใช้ในการ develop เรื่อยๆมา


NVM คืออะไร

เป็นเครื่องมือที่ใช้จัดการ version ของ node ในเครื่อง ทำให้เราไม่ต้อง ไปดาวน์โหลด node แต่ละ version แล้วมานั่งแก้ config และ สลับไปมาอยู่ โดยที่ตัว nvm จะมีความสามารถ ในการสลับ version ไปใช้ version ต่างๆ ด้วยการสร้าง alias ไว้

เพิ่มเติมได้ที่ GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

ขั้นตอนการติดตั้ง

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

หากเป็น macos ก็ใช้ brew ตรงๆได้เลย

$ brew install nvm

Screen Shot 2563-08-09 at 13.53.05.png

คำสั่งพื้นฐาน

  • nvm ls เป็นคำสั่ง ที่แสดง version ทั้งหมดที่เรา download มา

Screen Shot 2563-08-09 at 13.54.21.png

  • nvm install <version> เป็นคำสั่งที่เราจะติดตั้ง node version ที่เราต้องการโดยจะทำการไปดาวน์โหลด node จากอินเตอร์เน็ตสู่เครื่องของเรา

เช่น nvm install 14

Screen Shot 2563-08-09 at 13.58.20.png

หรือ เราสามารถเลือกติดตั้งเป็น version lts ได้เช่นกัน ด้วยคำสั่ง nvm install --lts

Screen Shot 2563-08-09 at 13.59.38.png

โดยมันจะทำการไป ดาวน์โหลด version lts ตัวล่าสุดให้

  • nvm use <version> เป็นการเลือกให้ node version ที่เราต้องการในการพัฒนา

Screen Shot 2563-08-09 at 14.02.34.png

  • nvm alias <alias name> <version> เป็นคำสั่งที่เราจะสร้าง alias ให้กับโปรเจคของเราให้ใช้ version ที่เราต้องการ

Screen Shot 2563-08-09 at 14.05.28.png

โดยการใช้งานเวลารัน จะใช้เป็น

$ nvm run <alias> <filename>
...
$ nvm run demoNvm index.js
  • nvm unalias <alias name> ลบ alias ที่เราสร้าง

Screen Shot 2563-08-09 at 14.07.53.png

  • nvm run <alias or version> <filename> เป็นการ run โดยใช้ version หรือ alias ที่เราต้องการ
$ nvm run 12 index.js # version v12.18.3
or 
$ nvm run demoNvm index.js

เพิ่มเติมได้ที่

รู้จัก nvm (Node Version Manager) และการใช้งาน​ จบครบทุกอย่างในบล็อกเดียว

Node Version Manager