nvm備忘録

2024/06/09に公開

この記事は何?

業務で nvm を用いて node.js をインストールしたので、nvm のメリット、インストール方法、使用方法などを備忘録としてまとめます。

nvm とは、メリット

公式の READMEによると

nvm is a version manager for node.js, designed to be installed per-user, and invoked per-shell. nvm works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL.

翻訳すると以下のようになります。

nvm は node.js のバージョン管理ツールで、ユーザーごとにインストールし、シェルごとに起動するように設計されています。nvm は POSIX 準拠のシェル(sh、dash、ksh、zsh、bash)、特に unix、macOS、windows WSL の各プラットフォームで動作します。

メリットとしてはバージョンを変えるときに素早く変えれるってことに尽きます。

インストール方法

まずは curl でのインストール方法について載せます。
以下のコマンドを実行してください。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash

続いて以下のコマンドを実行してください。

nvm --version

バージョン情報が出てきたらインストールできてます。
もしnvm : command not foundと表示されたら以下のコマンドを実行してもう一度バージョンを確認してみてください。

source ~/.zshrc

続いてHomebrew 経由でのインストール方法について載せておきます。
ただし公式では Homebrew 経由でのインストールはサポートしてないようなので理由がなければ curl でのインストールをしましょう。
以下のコマンドを実行してまずはインストールします。

brew install nvm

続いて~/.zshrcとかに以下の内容をコピペします。vi とか使ってください。

 export NVM_DIR="$HOME/.nvm"
  [ -s "$HOMEBREW_PREFIX/opt/nvm/nvm.sh" ] && \. "$HOMEBREW_PREFIX/opt/nvm/nvm.sh" # This loads nvm
  [ -s "$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm" ] && \. "$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion

最後に以下のコマンドを実行してください。

source ~/.zshrc

以下のコマンドでバージョン情報が確認できればオッケーです。

nvm --version

使用方法

以下のコマンドで Node.js の stable バージョンをインストールして使えます。

nvm install stable --latest-npm
nvm alias default stable

また以下のコマンドで Node.js の LTS バージョンを使えます。

nvm install --lts --latest-npm
nvm alias default "lts/*"

特定のバージョンを使いたい場合は以下のコマンドで利用できるバージョンを調べて

nvm ls-remote

以下のコマンドでインストール、デフォルト設定をします。

nvm install v16 --latest-npm
nvm alias default v16

tips

nvm 自体をアップデートしたい場合は以下のコマンドを実行

(
  cd "$NVM_DIR"
  git fetch --tags origin
  git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`
) && \. "$NVM_DIR/nvm.sh"

.nvmrc を使って特定のプロジェクトでバージョンを固定させることもできるみたいです。詳しくはまた別の記事を書こうと思います。

参考文献

Discussion