
Node.jsのバージョン管理にnを使うと便利な話
こんにちは、まるとです。
個人的に運用しているアプリのメンテナンスの都合上、Node.jsを触ることが多いのですが、検証用に色々なバージョンを行き来しています。
今回は楽にバージョンを切り替えられるn
を紹介できればと思います。
n とは
macOS、Linux向けのシンプルを追求したNode.jsのバージョン管理ツールです。
とにかくシンプルなので、まずは以下のGIFをご覧ください。
非常にシンプルなコマンドで特定のバージョンをダウンロード、切り替えができます。
特徴など
- 設定ファイルなど不要でインストールした直後から利用できる
- シンプルを追求しているため、直感的に利用できる
- 軽量かつ高速にバージョンの切り替えができる
導入&使ってみる
導入自体は非常に簡単です。
すでにNode.jsがインストールされている環境の場合はnpm経由でインストールできます。
npm install -g n
macOSでhomebrew導入済みの場合はbrewコマンドでインストールできます。
brew install n
特定のバージョンをインストール
特定バージョンをインストールするにはn <バージョン>
でインストールできます。
例えば、20.19.5をインストールしたい場合...
n 20.19.5
実際にコマンドを実行すると以下のようになります。
[ec2-user@ip-10-0-11-101 ~]$ n 20.19.5
installing : node-v20.19.5
mkdir : /home/ec2-user/n/n/versions/node/20.19.5
fetch : https://nodejs.org/dist/v20.19.5/node-v20.19.5-linux-arm64.tar.xz
copying : node/20.19.5
installed : v20.19.5 (with npm 10.8.2)
その他、LTS版や最新版を利用したい場合はn lts
やn latest
などのエイリアスも利用できます。
n --lts # インストール前に現行のLTSバージョンを確認したい場合
n lts # LTS版の最新をダウンロード
n latest
バージョンの切り替え
バージョンを切り替える際はシンプルにn
と入力するだけです。
n
実際に入力するとローカルで保持しているバージョン一覧が表示されます。
あとは矢印キーで左のoを切り替えたいバージョンに移動させ、Returnキーを押すことで切り替えが完了します。
node/20.19.5
ο node/22.19.0
node/24.7.0
Use up/down arrow keys to select a version, return key to install, d to delete, q to quit
# 選択後...
copying : node/22.19.0
installed : v22.19.0 (with npm 10.9.3)
[ec2-user@ip-10-0-11-101 ~]$ node -v
v22.19.0
インストール済みのバージョンを削除する
n
を利用してインストールしたバージョンは明示的に削除しない限り、バージョン切り替え後もローカルにキャッシュされます。
キャッシュを削除するにはn rm <バージョン>
を実行します。
[ec2-user@ip-10-0-11-101 ~]$ n ls # キャッシュされているバージョンを表示
node/20.19.5
node/22.19.0
node/24.7.0
[ec2-user@ip-10-0-11-101 ~]$ n rm 24.7.0 # 24.7.0を削除
[ec2-user@ip-10-0-11-101 ~]$ n ls # キャッシュされているバージョンを再表示
node/20.19.5
node/22.19.0
現在使用しているバージョン以外全てをアンインストールするにはn prune
を実行します。
[ec2-user@ip-10-0-11-101 ~]$ node -v # 現在使用中のバージョンを表示
v22.19.0
[ec2-user@ip-10-0-11-101 ~]$ n ls # キャッシュされているバージョンを表示
node/20.19.5
node/22.19.0
node/23.5.0
node/23.10.0
node/24.6.0
[ec2-user@ip-10-0-11-101 ~]$ n prune # 現在使用中のバージョン以外のキャッシュを削除
node/20.19.5
node/23.5.0
node/23.10.0
node/24.6.0
[ec2-user@ip-10-0-11-101 ~]$ n ls # キャッシュされているバージョンを再表示
node/22.19.0
所感
複数のバージョンを簡単にインストールできるのはもちろんですが、非常に直感的かつ覚えるコマンドも少なく、すぐに使える便利なツールだと感じました。
互換性や検証の観点から複数バージョンを行き来する場合は、ぜひ利用を検討してみてください。
以上、まるとでした!