WSL2にNode.jsをインストールする――nvmを使う理由とコマンド全手順
WSL2でNode.jsを使うならnvmが定番。Claude Codeに言われるままやったら5分で終わった。nvmを使う理由とインストール手順をまとめた。
WSL2を使い始めて、Astroのセットアップに必要だったのでNode.jsを入れた。インストール方法はいくつかあるが、Claude Codeが「nvmで入れましょう」と言うのでそのままやった。5分かからず終わった。
この記事では、nvmとは何か・なぜnvmが推奨されるのかを整理しつつ、WSL2へのインストール手順を書く。
なぜaptではなくnvmで入れるのか
WSL2(Ubuntu)でNode.jsを入れる方法は主に3つある。
aptでインストール(sudo apt install nodejs)- Node.jsの公式サイトからバイナリを直接入れる
- nvm(Node Version Manager)を使う ← これが定番
Claude Codeにおすすめの方法を聞いたら、迷わずnvmを推してきた。理由はこうだ:
aptで入るNode.jsはバージョンが古い(Ubuntu標準リポジトリはLTSより遅れがち)sudoなしでインストール・アップデートできる- プロジェクトごとに異なるNode.jsバージョンを使い分けられる
.nvmrcファイルを置けばnvm useで自動切り替えできる
個人開発でも複数プロジェクトを持つと「このプロジェクトはNode 18、あっちは22」という状況になる。nvmがあればそれをコマンド1行で切り替えられる。
:::note コラム: nvmとは何か
nvm(Node Version Manager)は、Node.jsのバージョンを管理するツール。Node.js本体をインストールするためのツールだと思えばいい。
Pythonでいうpyenv、Rubyでいうrbenvに相当する。バージョン管理ツールを先に入れて、そこから特定バージョンのNode.jsを入れる構造になっている。
nvm(バージョン管理)
└─ Node.js v18.20.0
└─ Node.js v20.15.0
└─ Node.js v22.5.0 ← 現在使用中
nvmでインストールしたNode.jsはホームディレクトリ(~/.nvm/)以下に格納される。sudo不要で管理できるのもこのためだ。
:::
nvmのインストール
公式の手順どおり、curlでインストールスクリプトを取得して実行する。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
スクリプトが走ると、~/.bashrc(または~/.zshrc)に以下のような記述が自動で追加される:
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
nvmが入ったか確認:
nvm --version
# 0.40.1 のように表示されればOK
Node.jsのインストール(LTS推奨)
nvmが入ったら、Node.jsをインストールする。特定のプロジェクトがなければLTS(長期サポート版)を入れておくのが無難。
# 最新のLTS版をインストール
nvm install --lts
# インストール済みのバージョン一覧を確認
nvm list
特定バージョンを指定して入れたい場合:
# バージョン指定でインストール
nvm install 22
# 使用するバージョンを切り替える
nvm use 22
バージョン確認と動作チェック
インストール後、ちゃんと動いているか確認する:
node --version
# v22.x.x のように表示されればOK
npm --version
# 10.x.x のように表示されればOK
Node.jsをインストールするとnpmも一緒に入る。npmはNode.jsのパッケージマネージャーで、AstroやTailwindのインストールに使う。
Windows側のNodeと混在しないのか
WSL2はWindowsとは独立したLinux環境なので、Windows側にNode.jsが入っていても基本的に競合しない。WSL2のターミナルでnodeを実行すると、WSL2内のnvmで管理しているNode.jsが動く。
Windowsで開発することは考えていなかったので混乱することもなかった。WSL2で開発するなら、Node.jsの管理もWSL2側に一本化してしまうのが一番スッキリする。
この後すぐAstroのセットアップに使った
Node.jsを入れた目的はAstroを動かすためだった。インストールして動作確認できたら、すぐnpm create astro@latestでAstroプロジェクトの作成に進んだ。
AstroのセットアップについてはAstroとCloudflare Pages、よくわからないまま公開できたに書いた。WSL2のセットアップ自体はWindowsでClaude Codeを使うならWSL2一択だったにまとめている。
nvmのインストールはClaude Codeに言われるままやったが、特に詰まることなく終わった。「なんでaptじゃないの?」という疑問はあったが、理由を聞いたらちゃんと説明してくれた。ハマっている人の参考になれば。