จัดการเวอร์ชั่น Node.js ด้วย NVM
เมื่อใช้ 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
ก็หวังว่าบทความนี้คงมีประโยชน์ครับ