TL;DR
- ローカルのnodeのバージョン管理ツールnvmを使う
- 動機としてグローバルにnodeのバージョン管理を行いたかった
- インストール時の設定が少なくバージョンコントロールが楽
About
今までは基本的にnodeはプロジェクト毎に使用しているバージョンが変わり、dockerを使用してバージョンコントロールをしていました。
そのため、ローカルにランタイムを入れること自体があまりなく、ローカルで使用する場合はvolta等でリポジトリ毎に使用バージョンの設定を行うことが多かったです。
しかし、バージョン管理ツールなどを使用しないことを前提としたリポジトリを複数扱うことが発生し、ローカルでグローバルでnodeのバージョンを切り替える機会が増えてきました。
現在私が横断組織として複数のプロダクトに関わっている関係上、ローカル環境はWSL2・Intel Mac・ARM Macなどなど複数存在し、本番ではAmazon Linux・Docker・Lambdaを使用するケースがあり、ローカルで複数のバージョンnodeを扱う必要が発生し、nvmにたどり着きました。
nvmについて
古くからあるメジャーなnodeのバージョン管理ツールであり、ご存じの方も多いと思います。
シェルスクリプトベースで、インストール方法やバージョンの設定をシンプルです。
Googleトレンド見てみると他のバージョン管理ツールより群を抜いているのが確認できます。
Versions
- nvm
- node
- v20.16.0
How to
nvmのInstall
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
nodeのInstall
まずはv20系のnodeのインストールを試してみます。
メジャーバージョンのみのインストールを実行
nvm install v20 nvm use v20
バージョンを確認するとlatestなバージョンがインストールされていることを確認できました。
node --version v20.16.0
次にv22系のnodeのインストールを行います。
nvm install v22 nvm use v22
同じくlatestなバージョンが導入できていることを確認。
node -v v22.6.0
Installしたランタイムのバージョンの確認
listサブコマンドで現在インストールされているバージョンと、defaultバージョンを確認できます。
どうやら最初にインストールしたnodeのバージョンがdefaultになるようです。
nvm list -> v20.16.0 v22.6.0 default -> 20 (-> v20.16.0) :
デフォルトのバージョンを変更します。
nvm alias default v22 nvm list v20.16.0 -> v22.6.0 default -> v22 (-> v22.6.0)
バージョンの確認で、v22に変更されたことを確認できました。
node -v v22.6.0
所感
普段はDockerでnodeを扱っているのでnvmを初めてしようしました。
シンプルで使いやすくローカルのnodeのバージョン管理ツールとして優れていると感じました。
1点気になった点として、nvmがまだメジャーバージョンではないことは少し疑問に思いました。