nvm
GitHub概要
nvm-sh/nvm
Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
スター85,917
ウォッチ1,032
フォーク9,045
作成日:2010年4月15日
言語:Shell
ライセンス:MIT License
トピックス
bashinstallltsnodenode-jsnodejsnvmnvmrcposixposix-compliantshellversion-managerzsh
スター履歴
データ取得日時: 2025/7/20 02:18
言語バージョン管理ツール
nvm(Node Version Manager)
概要
nvmは、Node.jsの複数バージョンを管理するための最も人気のあるツールです。プロジェクトごとに異なるNode.jsバージョンを使用でき、npmも同時に管理されます。シェルスクリプトで実装されており、POSIX準拠のシェルで動作します。
詳細
主な特徴
- 簡単なバージョン切り替え: コマンド一つでNode.jsバージョンを切り替え
- 自動npm管理: Node.jsと一緒にnpmも自動的に管理
- .nvmrcファイル: プロジェクトごとの自動バージョン設定
- LTSサポート: LTS(長期サポート)バージョンの簡単インストール
- エイリアス機能: バージョンに分かりやすい名前を付けられる
- アップグレード支援: Node.jsバージョン間でのパッケージ移行
動作原理
nvmは環境変数PATHを動的に変更することで、使用するNode.jsバージョンを切り替えます。各バージョンは~/.nvm/versions/node/ディレクトリに独立してインストールされます。
サポート環境
- Linux: すべての主要ディストリビューション
- macOS: 完全サポート
- Windows: WSL(Windows Subsystem for Linux)またはnvm-windows使用
- シェル: bash、zsh、fish(プラグイン使用)
メリット・デメリット
メリット
- 業界標準: Node.js開発者の間で最も広く使われている
- 豊富な機能: エイリアス、自動切り替えなど便利な機能
- 活発な開発: 継続的なアップデートとメンテナンス
- 簡単な使用: 直感的なコマンド体系
- 完全な分離: バージョンごとに独立したnpm環境
- 高速インストール: プリコンパイル済みバイナリの使用
デメリット
- シェル依存: シェル起動時の遅延が発生する可能性
- Windows非対応: ネイティブWindowsでは別ツール(nvm-windows)が必要
- メモリ使用: 複数バージョンインストール時のディスク容量
- 初期設定: シェル設定ファイルの編集が必要
- パフォーマンス: fnmなどの新しいツールと比較して遅い場合がある
参考ページ
書き方の例
インストール(Linux/macOS)
# インストールスクリプトを実行
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# または wget を使用
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# macOSではHomebrewも使用可能(非推奨)
# brew install nvm
シェル設定(.bashrcまたは.zshrcに自動追加される)
# nvmの設定(通常は自動で追加される)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# 設定を反映
source ~/.bashrc # または source ~/.zshrc
基本的な使い方
# 利用可能なNode.jsバージョンの一覧表示
nvm ls-remote
# LTSバージョンのみ表示
nvm ls-remote --lts
# 最新のLTSバージョンをインストール
nvm install --lts
# 特定バージョンのインストール
nvm install 20.11.0
nvm install 18.19.0
nvm install 16.20.2
# インストール済みバージョンの確認
nvm ls
# 現在のバージョン確認
nvm current
node --version
バージョン切り替え
# 特定バージョンに切り替え
nvm use 20.11.0
# 最新のLTSに切り替え
nvm use --lts
# デフォルトバージョンの設定
nvm alias default 20.11.0
# 一時的に別バージョンを使用
nvm exec 18.19.0 node app.js
プロジェクトごとの管理
# プロジェクトディレクトリに移動
cd /path/to/my-project
# .nvmrcファイルを作成
echo "20.11.0" > .nvmrc
# .nvmrcに基づいてバージョンを使用
nvm use
# Found '/path/to/my-project/.nvmrc' with version <20.11.0>
# .nvmrcのバージョンをインストールして使用
nvm install
エイリアスの管理
# エイリアスの作成
nvm alias production 20.11.0
nvm alias development 21.6.1
# エイリアスを使用
nvm use production
# エイリアス一覧
nvm alias
# エイリアスの削除
nvm unalias production
パッケージの移行
# 古いバージョンから新しいバージョンへパッケージを移行
nvm install 20.11.0 --reinstall-packages-from=18.19.0
# グローバルパッケージのみ移行
nvm install 20.11.0 --reinstall-packages-from=18.19.0 --global
# 現在のバージョンのグローバルパッケージ一覧
npm ls -g --depth=0
便利な設定とコマンド
# 自動的に.nvmrcを読み込む設定(.bashrcに追加)
cd() {
builtin cd "$@"
if [[ -f .nvmrc ]]; then
nvm use
fi
}
# Node.jsバージョンのアンインストール
nvm uninstall 16.20.2
# キャッシュのクリア
nvm cache clear
# nvmのアップデート
cd ~/.nvm
git fetch --tags origin
git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`
# 特定のnpmバージョンをインストール
nvm install-latest-npm
トラブルシューティング
# nvmコマンドが見つからない場合
source ~/.bashrc
# PATHの確認
echo $PATH | grep nvm
# nvmの再インストール
rm -rf ~/.nvm
# 再度インストールスクリプトを実行