Open1
【Node/nvm】nvmを使ったNodeのバージョン管理について📝

nvm (Node Version Manager) CLI チートシート📝
nvm は POSIX シェル上で Node.js の複数バージョンを瞬時にインストール/切替できる bash スクリプトで、インストールスクリプトを再実行するだけでアップデートも完了します。
インストール & アップデート
# 推奨: curl 経由
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# wget 派
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
-
NVM_DIR="$HOME/.nvm"
をシェルの初期化ファイルに追記すると自動ロードされる(github.com) - インストール時点で
NVM_DIR
やPROFILE
を上書きしたい場合は環境変数経由で指定できる(例:NVM_DIR="$HOME/.dotfiles/nvm"
)(github.com) - nvm の更新は 同じスクリプトをもう一度実行 すれば上書きされる。(github.com)
基本コマンド📝
## 指定したバージョンのNode.jsをインストール
nvm install 16.13.0
# 最新のNode.jsをインストール
nvm install node
# 最新のLTSバージョンをインストール
nvm install --lts
# 指定したバージョンのNode.jsを使用
nvm use 16.13.0
# 最新のLTSバージョンを使用
nvm use --lts
# インストール済みのNode.jsバージョンを一覧表示
nvm ls
# 利用可能なNode.jsバージョンをリモートから一覧表示
nvm ls-remote
# 現在使用中のNode.jsバージョンを表示
nvm current
# nvm uninstall : 指定したバージョンのNode.jsをアンインストール
nvm uninstall 16.13.0
基本コマンド早見表
コマンド | 意味 | よく使う例 | |
---|---|---|---|
nvm install <ver> |
指定バージョンをインストール |
nvm install 20 / nvm install --lts
|
|
nvm use <ver> |
指定バージョンを現在のシェルで使用 |
nvm use node (最新) |
|
nvm ls |
ローカルに入っている Node 一覧 | — | |
nvm ls-remote |
公式リリース一覧(超長い) | `nvm ls-remote | grep LTS` |
nvm alias default <ver> |
新しいシェルのデフォルトを設定 | nvm alias default 18 |
|
nvm run <ver> <file> |
特定バージョンでスクリプト実行 | nvm run 14 app.js |
|
nvm exec <ver> … |
PATH を一時書き換えて任意コマンド実行 | nvm exec 16 npm test |
|
nvm reinstall-packages <ver> |
旧バージョンの npm パッケージを丸ごと再インストール | nvm reinstall-packages 18 |
|
nvm uninstall <ver> |
バージョン削除 | nvm uninstall 14 |
|
nvm set-colors <code> |
ls 出力の色替え | nvm set-colors cgYmW |
上表は公式 README・Medium 記事・GitHub Gist で紹介されている頻出パターンを抽出したものです。(gist.github.com, medium.com, linode.com)
バージョン管理ワンポイント
インストール系
nvm install node # 最新版
nvm install --lts # 最新 LTS
nvm install 18.19.0 # 完全一致
nvm install 18 # 18.* の最新
インストールと同時にそのバージョンを使う場合は --default
オプションを併用。(github.com)
切り替え系
-
nvm use 18
― 18 系の最新に切替 -
nvm alias default node
― 常に最新安定版をデフォルトに(medium.com)
エイリアス活用術
nvm alias stable 20
nvm use stable
nvm unalias stable
任意のラベルを自分好みで付け替えられるので CI/スクリプトの可読性向上に便利。(medium.com)
環境変数&カスタマイズ
変数 | 用途 |
---|---|
NVM_DIR |
nvm の本体と各バージョンを格納するディレクトリ |
NVM_NODEJS_ORG_MIRROR |
ダウンロード先ミラーを変更(国内ミラーへ高速化等) |
NVM_SYMLINK (Windows) |
グローバルに使う Node へシンボリックリンク |
-
NVM_DIR
が存在しない場合、起動時に「directory does not exist」エラーが出るので mkdir で事前作成または変数修正が必要(stackoverflow.com) -
$PATH
が壊れる場合、Homebrew 版 nvm はサポート外なので uninstall→公式スクリプト再インストールで解決することが多い(github.com) - XDG 系ディレクトリを使う場合は
export NVM_DIR="$XDG_CONFIG_HOME/nvm"
で配置を変更可能(medium.com)
よくあるトラブル & ヒント
-
ls-remote が
N/A
だけ返す → proxy/企業 FW で GitHub API が遮断されているケースが多い。環境変数HTTPS_PROXY
を確認し、再試行。(stackoverflow.com) -
nvm コマンドが効かない → シェルを再起動 or
source "$NVM_DIR/nvm.sh"
を手動実行。(github.com) -
パッケージ引継ぎ → 新バージョンへ上げる際は
nvm reinstall-packages <old>
でグローバル npm/pnpm/yarn パッケージをコピー。(github.com)
Windows で使いたい場合
Unix 版 nvm は WSL を含む POSIX シェル専用。ネイティブ Windows では fork 版 nvm-windows
(coreybutler/nvm-windows)を使用し、nvm install latest
など似たシンタックスで管理できる。インストール先やコマンド体系が微妙に違うため混在は避ける。(github.com)
参考/追加ドキュメント
- 公式 README に全コマンド・環境変数一覧あり(
nvm --help
相当)(github.com) - 実践記事やチートシート(Medium・Linode Docs・GitHub Gist)は各 OS でのセットアップ手順やエイリアス例が充実 (medium.com, medium.com, linode.com)
ワンポイント: シェルの補完が欲しい場合は
brew install bash-completion
後にsource $(brew --prefix nvm)/bash_completion
を読み込むとタブ補完が効くようになります(Homebrew 配下に手動配置した場合のみ)。
これで nvm に関する日常操作はほぼカバーできるはずです。Happy hacking!