เชื่อว่า ทุกคนที่เขียน nodejs
อาจเคยเจอปัญหา เวลาทำงานร่วมกันกับคนอื่น แล้ว ประสบปัญหา เรื่อง version ของ nodejs
ที่ของในทีมไม่ตรงกัน
> งั้นก็มีวิธีแก้ไขง่ายๆ ด้วยการบอกให้คนอื่นเขียน version เดียวกันทั้งทีมสิ
วิธีนั้นเป็นวิธีที่ควรทำ แต่กลับกันเมื่อเรา ต้องไปดูแลหรือ แก้ไข โปรเจค หลายๆตัวที่ version ไม่เหมือนกัน เราจะทำอย่างไร สิ่งที่จะช่วยอย่างแรกที่นึกออกสำหรับผม คงเป็น การนำ docker
มาช่วยในการทำงาน แต่ด้วยความที่ ก่อนหน้านี้ VS Code
ที่ผมใช้ผมยังไม่รู้จัก extension ตัวนึงของ vscode ที่ชื่อว่า Remote - Containers
Remote - Containers - Visual Studio Marketplace
ก่อนน่านี้ผมเลยได้ รู้จัก เครื่องมือตัวนึงที่เอามาจัดการ version nodejs ที่ชื่อว่า NVM
ผมเลยนำมันมาใช้ในการ develop
เรื่อยๆมา
เป็นเครื่องมือที่ใช้จัดการ 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
nvm ls
เป็นคำสั่ง ที่แสดง version ทั้งหมดที่เรา download มาnvm install <version>
เป็นคำสั่งที่เราจะติดตั้ง node version ที่เราต้องการโดยจะทำการไปดาวน์โหลด node จากอินเตอร์เน็ตสู่เครื่องของเราเช่น
nvm install 14
หรือ เราสามารถเลือกติดตั้งเป็น version lts ได้เช่นกัน
ด้วยคำสั่ง
nvm install --lts
โดยมันจะทำการไป ดาวน์โหลด version lts ตัวล่าสุดให้
nvm use <version>
เป็นการเลือกให้ node version ที่เราต้องการในการพัฒนาnvm alias <alias name> <version>
เป็นคำสั่งที่เราจะสร้าง alias
ให้กับโปรเจคของเราให้ใช้ version ที่เราต้องการโดยการใช้งานเวลารัน จะใช้เป็น
$ nvm run <alias> <filename>
...
$ nvm run demoNvm index.js
nvm unalias <alias name>
ลบ alias ที่เราสร้าง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) และการใช้งาน จบครบทุกอย่างในบล็อกเดียว