เมื่อใช้ Node.js พัฒนาโปรเจ็คหลายชิ้นงาน หรือทำงานร่วมกับผู้อื่น ปัญหาที่มักจะพบเจอคือเวอร์ชั่นของ Node.js ไม่ตรงกัน ทำให้ไม่สามารถรันโปรเจ็คขึ้นมาได้ วิธีแก้อาจจะใช้ Docker หรือไม่ก็ใช้ NVM ซึ่งคือบทความในวันนี้

NVM คืออะไร ?

NVM (Node Version Management) เป็นตัวสำหรับจัดการ Node.js บนเครื่องเรา โดยทำให้เครื่องเราสามารถมี Node.js ได้หลายเวอร์ชั่นในเครื่องเดียว  และยังสามารถสลับใช้แต่ละเวอร์ชั่นในเครื่องได้โดยไม่ต้อง Uninstall เอาเวอร์ชั่นเก่าออก แล้วลงใหม่ ซึ่งมันคงจะทำให้เราเสียเวลาพอสมควร มาเริ่มกันเลยครับ

ติดตั้ง

การติดตั้งสามารถทำได้ 2 วิธี ดังนี้

ใช้คำสั่ง cURL

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

ใช้คำสั่ง Wget

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

เมื่อติดตั้งเสร็จเรียบร้อยแล้วให้ลองพิมพ์ nvm มันควรจะแสดงผลลัพธ์ประมาณนี้

กรณีเกิดปัญหาติดตั้งไม่ได้ !

ถ้าไม่สามารถใช้คำสั่ง nvm ได้ command not found: nvm ให้รัน Script ดังนี้เพื่อแก้ไข จากนั้นลองคำสั่ง nvm อีกครั้ง

# สำหรับ bash
source ~/.bashrc

#สำหรับ zsh
source ~/.zshrc

แต่ถ้าไม่มีไฟล์ดังกล่าวให้สร้างไฟล์ใหม่

# สำหรับ bash
touch ~/.bashrc

#สำหรับ zsh
touch ~/.zshrc

แล้วเพิ่ม Script นี้ลงในไฟล์ที่เพิ่งสร้างมาข้างต้น แล้วบันทึกสั่งรัน Script ใหม่อีกครั้ง

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

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

หลังจากที่เราทำการติดตั้ง NVM เรียบร้อยแล้ว เราจะมาลองคำสั่งพื้นฐานที่น่าจะใช้เป็นประจำกันครับ

nvm ls

แสดงรายการเวอร์ชันของ Node.js ที่เราติดตั้งในเครื่องแล้ว

nvm ls

nvm ls-remote

แสดงรายการเวอร์ชันของ Node.js ที่มีทั้งหมดบน Server หลักของ Node.js

nvm ls-remote

nvm install

ติดตั้ง Node.js โดยระบุเวอร์ชั่น

nvm install <node_version> # ตัวอย่าง nvm install 14.17.0
nvm install --lts # เลือกติดตั้งเป็น version lts

nvm uninstall

ถอนการติดตั้ง Node.js โดยระบุเวอร์ชั่น

nvm uninstall <node_version> # ตัวอย่าง nvm uninstall 14.17.0

nvm alias

ตั้งชื่อ Alias แทนเวอร์ชันของ Node.js มีประโยชน์เพื่อที่จะได้จำง่าย เพราะชื่อสั้นกระชับและมีความหมาย อาจจะตั้งเป็นชื่อย่อโปรเจ็ค หรือ เลขย่อเวอร์ชั่น เป็นต้น

nvm alias <alias_name> <node_version> 
# ตัวอย่าง nvm alias v14 14.17.0

nvm unalias

ลบ Alias ที่ผูกไว้ออก

nvm unalias <alias_name> 
# ตัวอย่าง nvm unalias v14

nvm use

เรียกใช้เวอร์ชันของ Node.js เป็นระบบหลักบนเครื่องของเรา

nvm use <node_version | node_alias> 
# ตัวอย่าง nvm use 14.17.0 หรือ nvm use v14

nvm use system # ใช้เวอร์ชั่นในระบบหลักของเครื่อง

nvm run

ใช้รันแบบระบุเวอร์ชั่นในแต่ละโปรเจ็กหรือไฟล์ ซึ่งสามารถรันพร้อมกันได้

nvm run <node_version | node_alias> <file name> 
# ตัวอย่าง nvm run 14.17.0 app.js หรือ nvm run v14 app.js

nvm unload

ถอนการติดตั้ง NVM ออกจากเครื่องเรา

nvm unload

ก็หวังว่าบทความนี้คงมีประโยชน์ครับ