nvm は、複数の Node.js をユーザー単位・シェル単位でインストール/切り替えできるバージョンマネージャです(POSIX シェル向け)。macOS/Linux/WSL で動き、Windows ネイティブは別実装(nvm-windows)です。(GitHub)
実務では「開発プロジェクトごとに Node を固定」「CI やローカルで LTS に一括切替」「.nvmrc による自動切替」等に使います。(GitHub)
構文(Syntax)
nvm [SUBCOMMAND] [ARGS]
# よく使うサブコマンド例
nvm install <ver>|node|lts/* [--latest-npm] [--reinstall-packages-from=<ver>] [-s]
nvm use <ver>|system|lts/*
nvm ls # ローカルに入っているバージョン一覧
nvm ls-remote # インストール可能なリモート一覧(--lts 指定可)
nvm alias [name] [ver] # エイリアス設定(default でデフォルト指定)
nvm uninstall <ver>
nvm which <ver> # 実体パス表示
nvm run <ver> -- node --version
nvm exec <ver> -- <cmd>
nodeは最新安定版、lts/*は最新 LTS を指します。多くのサブコマンドが--lts/lts/<line>を受け付けます。(GitHub)
主なオプション一覧
| オプション/サブコマンド | 説明 | 使用例 |
|---|---|---|
install <ver> | そのバージョンを取得して使用開始 | nvm install 22.6.0 (GitHub) |
install --lts | 最新 LTS を取得(lts/* と同義) | nvm install --lts (GitHub) |
install --reinstall-packages-from=<ver> | 既存バージョンから グローバル npm パッケージを移行 | nvm install --reinstall-packages-from=current 'lts/*' (GitHub) |
install --latest-npm / install-latest-npm | その Node に対応する 最新 npm を同時/後から導入 | nvm install --latest-npm node / nvm install-latest-npm (GitHub) |
install -s | バイナリが無い環境で ソースからビルド(例: Alpine) | nvm install -s 22 (GitHub) |
| `use | system | lts/*` |
ls / ls-remote [--lts] | ローカル/リモート一覧(--no-colors 可) | nvm ls-remote --lts (GitHub) |
alias default <spec> | 新しいシェルの 既定 Node を設定 | nvm alias default lts/* (GitHub) |
.nvmrc | ディレクトリに置くと use/install/exec などが自動解釈 | echo "lts/*" > .nvmrc; nvm use (GitHub) |
deactivate | PATH を元に戻す | nvm deactivate (GitHub) |
実行例
最新 LTS を導入して使う
説明: 安定運用向けに LTS へ切り替えます。
コマンド:
nvm install --lts
nvm use --lts
node -v
出力例(概略):
Now using node vXX.YY.Z (npm vA.B.C)
(GitHub)
プロジェクトごとにバージョン固定(.nvmrc)
説明: そのディレクトリに入ると同じ Node を使えます。
コマンド:
echo "18.19" > .nvmrc
nvm install # .nvmrc を読んで該当バージョンを入れる
nvm use # .nvmrc を読んで切り替え
(GitHub)
既存のグローバルパッケージを移行しつつ更新
説明: 旧バージョンの npm -g パッケージを新バージョンへ移行。npm も同時更新。
コマンド:
nvm install --reinstall-packages-from=current --latest-npm 'lts/*'
(GitHub)
デフォルト(新しいシェルで使う版)を設定
説明: 毎回同じ Node から始めたいときに。
コマンド:
nvm alias default lts/* # あるいは具体値: nvm alias default 22
(GitHub)
エラー例:nvm: command not found(プロファイル未読込)
説明: インストール直後にシェルの設定が読み込まれていないケース。
コマンド:
# 例: bash
source ~/.bashrc
command -v nvm # -> nvm
(端末を開き直す/source で解消) (GitHub)
関連コマンド
node/npm: Node.js 本体とパッケージマネージャ。corepack:pnpm/yarnを公式に扱うためのツール。nvm-windows: Windows ネイティブの別実装(互換だが別物)。インターフェースが一部異なります。(GitHub)
備考
- 対応プラットフォーム:
nvmは POSIX シェル用(macOS/Linux/WSL)。Windows ネイティブはnvm-windowsを使用。(GitHub) - インストール: 公式の install スクリプトを
curl/wgetで実行し、~/.nvm配下に導入。プロファイルにNVM_DIRとスクリプト読込行が追加されます。(GitHub) - LTS 指定: ほぼ全コマンドで
--lts/'lts/*'/lts/<line>(例:lts/argon)が使用可。(GitHub) - グローバル npm の移行:
--reinstall-packages-fromで移行、npm も更新したい場合は--latest-npmを併用。(GitHub) - Alpine 等の特殊環境: 公式バイナリが使えない環境では
nvm install -s(ソースビルド)を利用。(GitHub) .nvmrcの探索: カレントから親ディレクトリへ辿って最初に見つかった.nvmrcを解釈します。(GitHub)- シンボリック
current: 既定では作成されません。必要ならNVM_SYMLINK_CURRENT=trueを設定。(GitHub)

コメント