NVM untuk Manajemen Node Version

Problem

Saat kita bekerja diperusahaan yang cukup besar, besar dalam artian memiliki banyak Web Apps yang dimaintenance, memiliki banyak legacy kode / Web Apps yang perlu dilakukan pembaruan. Maka sering kali kita menemukan bahwa Web Apps tersebut tidak bisa dijalankan pada NodeJS versi tertentu. Misalnya package manager pnpm.

PNPM Compatibility

Bila kita memiliki 2 Web Apps, Satu menggunakan pnpm versi 5 dan satunya menggunakan versi 7. Apakah kita harus install dan re install NodeJS versi 12 dan 14? Tentu saja tidak.

Solution

Memperkenalkan, NVM. Node Version Manager. Sebuah package untuk install dan menggunakan node sesuai yang kita inginkan. Sesuai dengan namanya, kita bisa mengganti, melakukan pemasangan node dari berbagai versi dan melakukan switch node yang kita gunakan.

Akhirnya, dengan adanya NVM ini kita mampu untuk berpindah node saat berpindah menggunakan Web Apps / membangun sebuah Web Apps dengan node yang berbeda.

Cara install NVM

Cukup susah untuk bisa menginstall NVM kalau melihat Readme.md di repositorynya. Cara paling cepat adalah dengan install melalui homebrew untuk MacOS dan NVM-Dekstop untuk Windows.

Mudahnya untuk Windows tinggal unduh di https://github.com/coreybutler/nvm-windows

Sedangkan untuk MacOS dengan menggunakan homebrew

brew install nvm

Lalu, membuat NVM Folder di Home

mkdir ~/.nvm 

Melakukan configurasi variable

vim ~/.zshrc

Menambahkan code berikut di profile terminal tadi

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

Lalu, memuat variable tersebut dengan cara

source ~/.bash_profile

Selanjutnya tinggal logout dan login.

Cara menggunakan NVM

Sebelum kita install NVM, kita harus memastikan ketersedian node yang bisa kita install yaitu dengan

nvm ls-remote

Kalau sudah, kita tinggal memilih versi node yang akan diinstall.

Install Node versi terbaru :

nvm install node

Install Node sesuai versi, nvm install [versi-node]

nvm install 14

Check versi Node yang sudah terinstall dengan

nvm ls 

Cara Mengganti versi Node

nvm use 14 


Conclusion

NVM Memudahkan kita dalam menggunakan node untuk setiap Web Apps yang memiliki dependencies yang berbeda beda tanpa perlu install dan uninstall node kita.

Reference

GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active nod...
How To Install NVM on macOS with Homebrew